@lfsoftwares/native-util 0.0.14 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,7 @@ pnpm i @lfsoftwares/native-util
27
27
  > If you used a package manager other than npm in step 2, also use it in the command below
28
28
 
29
29
  ```sh
30
- npm i expo-clipboard expo-constants expo-crypto expo-device expo-splash-screen date-fns react-native-format-currency
30
+ npm i expo-clipboard expo-constants expo-crypto expo-device expo-splash-screen moment react-native-format-currency
31
31
  ```
32
32
 
33
33
  ## 3. What's included?
@@ -1,292 +1,48 @@
1
- import { Platform } from 'react-native';
2
- import { compareAsc, add, format, differenceInMinutes } from 'date-fns';
3
- import { pt } from 'date-fns/locale';
1
+ import moment from 'moment';
4
2
  class RNDateUtils {
5
- static formatUSDate(date, shortYear) {
6
- try {
7
- if (date) {
8
- const dateString = date.toString();
9
- if (dateString.length === 10) {
10
- const dateParts = dateString.split('-');
11
- return (dateParts[2] +
12
- '/' +
13
- dateParts[1] +
14
- '/' +
15
- (shortYear ? dateParts[0].substring(2) : dateParts[0]));
16
- }
17
- else if (Platform.OS === 'ios') {
18
- const newDate = new Date(date.toString());
19
- const dateFormated = Intl.DateTimeFormat('pt-BR', {
20
- dateStyle: 'short',
21
- timeStyle: 'short',
22
- }).format(newDate);
23
- if (shortYear) {
24
- const onlyDate = dateFormated.split(' ')[0];
25
- const dateParts = onlyDate.split('/');
26
- return (dateParts[0] + '/' + dateParts[1] + '/' + dateParts[2].substring(2));
27
- }
28
- else {
29
- return dateFormated.split(' ')[0];
30
- }
31
- }
32
- else {
33
- return shortYear
34
- ? format(date, 'dd/MM/yy', { locale: pt })
35
- : format(date, 'dd/MM/yyy', { locale: pt });
36
- }
37
- }
38
- else {
39
- return '';
40
- }
41
- }
42
- catch (e) {
3
+ static removeDateTimeZone(canRemove, dateTime) {
4
+ if (!dateTime) {
43
5
  return '';
44
6
  }
45
- }
46
- static formatDateTimeZone(date, shortYear) {
47
- // 2023-02-16T00:00:00.000Z ou 2023-02-16
48
- if (date && date.includes('-')) {
49
- if (date.includes('T')) {
50
- const onlyDate = date.split('T')[0];
51
- const dateParts = onlyDate.split('-');
52
- let formatedDate;
53
- if (dateParts[0].length === 4) {
54
- formatedDate =
55
- dateParts[2] +
56
- '/' +
57
- dateParts[1] +
58
- '/' +
59
- (shortYear ? dateParts[0].substring(2) : dateParts[0]);
60
- }
61
- else {
62
- formatedDate =
63
- dateParts[0] +
64
- '/' +
65
- dateParts[1] +
66
- '/' +
67
- (shortYear ? dateParts[2].substring(2) : dateParts[2]);
68
- }
69
- return formatedDate;
70
- }
71
- else if (date && date.length === 10) {
72
- const dateParts = date.split('-');
73
- return (dateParts[2] +
74
- '/' +
75
- dateParts[1] +
76
- '/' +
77
- (shortYear ? dateParts[0].substring(2) : dateParts[0]));
78
- }
7
+ if (!canRemove) {
8
+ return dateTime;
79
9
  }
10
+ const dateTimeStr = moment(dateTime).toISOString();
11
+ return dateTimeStr.split('.')[0];
80
12
  }
81
- static validateDateString(date) {
82
- try {
83
- if (date &&
84
- date.includes('/') &&
85
- (date.length === 6 ||
86
- date.length === 7 ||
87
- date.length === 8 ||
88
- date.length === 10)) {
89
- const dateParts = date.split('/');
90
- if (dateParts.length === 3) {
91
- dateParts[0] = dateParts[0].padStart(2, '0');
92
- dateParts[1] = dateParts[1].padStart(2, '0');
93
- if (dateParts[2].length === 2) {
94
- dateParts[2] = '20' + dateParts[2];
95
- }
96
- if (dateParts[0].length !== 2 ||
97
- dateParts[1].length !== 2 ||
98
- dateParts[2].length !== 4) {
99
- return undefined;
100
- }
101
- const dateValidate = new Date(dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0]);
102
- const validDate = dateValidate.getTime();
103
- if (!isNaN(validDate)) {
104
- return dateParts[0] + '/' + dateParts[1] + '/' + dateParts[2];
105
- }
106
- else {
107
- return undefined;
108
- }
109
- }
110
- else {
111
- return undefined;
112
- }
113
- }
114
- else {
115
- return undefined;
116
- }
117
- }
118
- catch (e) {
119
- return undefined;
120
- }
13
+ static currentDate(shortYear = false) {
14
+ return moment().format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY');
121
15
  }
122
- static dateTimeStringBRToDateTimeStringUS(dateTime) {
123
- if (!dateTime || dateTime.length !== 19) {
124
- return '';
125
- }
126
- const dateBR = this.validateDateString(dateTime.split(' ')[0]);
127
- if (dateBR) {
128
- const dateParts = dateBR.split('/');
129
- const onlyTime = dateTime.split(' ')[1];
130
- return (dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0] + ' ' + onlyTime);
131
- }
132
- else {
133
- return '';
134
- }
16
+ static currentTime(fullTime = false) {
17
+ return moment().format(fullTime ? 'HH:mm:ss' : 'HH:mm');
135
18
  }
136
- static dateStringBRToDateStringUS(date) {
137
- const dateBR = this.validateDateString(date);
138
- if (dateBR) {
139
- const dateParts = dateBR.split('/');
140
- return dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0];
141
- }
142
- else {
143
- return '';
144
- }
19
+ static currentDateTime(shortYear = false, fullTime = false) {
20
+ let mask = shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY';
21
+ mask += fullTime ? ' HH:mm:ss' : ' HH:mm';
22
+ return moment().format(mask);
145
23
  }
146
- static dateStringUSToDateStringBR(date, shortYear) {
147
- if (date && date.includes('-') && date.length === 10) {
148
- const dateParts = date.split('-');
149
- dateParts[2] = dateParts[2].padStart(2, '0');
150
- dateParts[1] = dateParts[1].padStart(2, '0');
151
- if (dateParts[0].length === 2) {
152
- dateParts[0] = '20' + dateParts[0];
153
- }
154
- if (shortYear) {
155
- dateParts[0] = dateParts[0].substring(2);
156
- }
157
- return dateParts[2] + '/' + dateParts[1] + '/' + dateParts[0];
158
- }
159
- else {
160
- return undefined;
24
+ static formatDate(date, shortYear = false, removeTimeZone = false) {
25
+ if (!date) {
26
+ return '';
161
27
  }
28
+ date = this.removeDateTimeZone(removeTimeZone, date);
29
+ return moment(date).format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY');
162
30
  }
163
- static compareDates(initialDate, endDate) {
164
- initialDate = this.dateStringBRToDateStringUS(initialDate);
165
- endDate = this.dateStringBRToDateStringUS(endDate);
166
- return compareAsc(new Date(initialDate), new Date(endDate));
167
- }
168
- static expiredDate(date) {
169
- if (!date)
170
- return false;
171
- if (date.toString().includes('1899'))
172
- return false;
173
- const today = this.getCurrentDateText();
174
- const formatedDate = this.formatJsDateTime(date);
175
- const compareResult = this.compareDates(formatedDate, today);
176
- return compareResult < 0;
177
- }
178
- static minutesBetween(majorDate, minorDate) {
179
- majorDate = this.dateTimeStringBRToDateTimeStringUS(majorDate);
180
- minorDate = this.dateTimeStringBRToDateTimeStringUS(minorDate);
181
- return differenceInMinutes(new Date(majorDate), new Date(minorDate));
182
- }
183
- static getCurrentDateText() {
184
- return format(new Date(), 'dd/MM/yyyy', {
185
- locale: pt,
186
- });
187
- }
188
- static getCurrentDateTimeText() {
189
- return format(new Date(), 'dd/MM/yyyy HH:mm:ss', {
190
- locale: pt,
191
- });
192
- }
193
- static getCurrentDateTimeZoneText() {
194
- const formatedDate = format(new Date(), 'yyyy-MM-dd', {
195
- locale: pt,
196
- });
197
- const formatedTime = format(new Date(), 'HH:mm:ss', {
198
- locale: pt,
199
- });
200
- const formatedDateTime = formatedDate.concat('T', formatedTime, '.000Z');
201
- return formatedDateTime;
202
- }
203
- static formatDate(date) {
204
- return format(date, 'dd/MM/yyyy', {
205
- locale: pt,
206
- });
207
- }
208
- static getDateFromToday(addMonths) {
209
- let newDate = new Date();
210
- if (addMonths) {
211
- newDate = add(newDate, { months: addMonths });
31
+ static formatTime(dateTime, fullTime = false, removeTimeZone = false) {
32
+ if (!dateTime) {
33
+ return '';
212
34
  }
213
- return format(newDate, 'dd/MM/yyyy', {
214
- locale: pt,
215
- });
35
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime);
36
+ return moment(dateTime).format(fullTime ? 'HH:mm:ss' : 'HH:mm');
216
37
  }
217
- static formatJsDateTime(date, putHours, shortYear) {
218
- try {
219
- if (date) {
220
- const dateString = date.toString();
221
- if (dateString.length === 10) {
222
- const dateParts = dateString.split('-');
223
- return (dateParts[2] +
224
- '/' +
225
- dateParts[1] +
226
- '/' +
227
- (shortYear ? dateParts[0].substring(2) : dateParts[0]));
228
- }
229
- else if (Platform.OS === 'ios') {
230
- const newDate = new Date(date.toString().replace('00:00:00.000', '12:00:00.000'));
231
- let dateFormated = Intl.DateTimeFormat('pt-BR', {
232
- dateStyle: 'short',
233
- timeStyle: 'short',
234
- }).format(newDate);
235
- if (shortYear) {
236
- const dateTimeParts = dateFormated.split(' ');
237
- const onlyDate = dateTimeParts[0];
238
- const onlyTime = dateTimeParts[1];
239
- const dateParts = onlyDate.split('/');
240
- dateFormated =
241
- dateParts[0] +
242
- '/' +
243
- dateParts[1] +
244
- '/' +
245
- dateParts[2].substring(2) +
246
- ' ' +
247
- onlyTime;
248
- }
249
- if (putHours) {
250
- return dateFormated.replace(' ', ' - ');
251
- }
252
- else {
253
- return dateFormated.split(' ')[0];
254
- }
255
- }
256
- else {
257
- const newDate = date.toString().replace('00:00:00.000', '12:00:00.000');
258
- const onlyDate = newDate.includes('T')
259
- ? newDate.split('T')[0]
260
- : newDate.split(' ')[0];
261
- const onlyTime = newDate.includes('T')
262
- ? newDate.split('T')[1]
263
- : newDate.split(' ')[1];
264
- const fieldsDate = onlyDate.split('-');
265
- const fieldsTime = onlyTime.split(':');
266
- const dateFormated = fieldsDate[2] +
267
- '/' +
268
- fieldsDate[1] +
269
- '/' +
270
- (shortYear ? fieldsDate[0].substring(2) : fieldsDate[0]) +
271
- ' - ' +
272
- fieldsTime[0] +
273
- ':' +
274
- fieldsTime[1];
275
- if (putHours) {
276
- return dateFormated;
277
- }
278
- else {
279
- return dateFormated.split('-')[0].trim();
280
- }
281
- }
282
- }
283
- else {
284
- return '';
285
- }
286
- }
287
- catch (e) {
38
+ static formatDateTime(dateTime, shortYear = false, fullTime = false, removeTimeZone = false) {
39
+ if (!dateTime) {
288
40
  return '';
289
41
  }
42
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime);
43
+ let mask = shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY';
44
+ mask += fullTime ? ' HH:mm:ss' : ' HH:mm';
45
+ return moment(dateTime).format(mask);
290
46
  }
291
47
  }
292
48
  export default RNDateUtils;
@@ -1 +1 @@
1
- {"version":3,"file":"util.dates.js","sourceRoot":"","sources":["../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,WAAW;IACf,MAAM,CAAC,YAAY,CAAC,IAAW,EAAE,SAAmB;QAClD,IAAI;YACF,IAAI,IAAI,EAAE;gBACR,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAElC,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAEvC,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;wBACZ,GAAG;wBACH,SAAS,CAAC,CAAC,CAAC;wBACZ,GAAG;wBACH,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACvD,CAAA;iBACF;qBAAM,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;oBAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;wBAChD,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,OAAO;qBACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAElB,IAAI,SAAS,EAAE;wBACb,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAErC,OAAO,CACL,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACpE,CAAA;qBACF;yBAAM;wBACL,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;qBAClC;iBACF;qBAAM;oBACL,OAAO,SAAS;wBACd,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;wBAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;iBAC9C;aACF;iBAAM;gBACL,OAAO,EAAE,CAAA;aACV;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IACD,MAAM,CAAC,kBAAkB,CAAC,IAAa,EAAE,SAAmB;QAC1D,yCAAyC;QACzC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAErC,IAAI,YAAY,CAAA;gBAEhB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,YAAY;wBACV,SAAS,CAAC,CAAC,CAAC;4BACZ,GAAG;4BACH,SAAS,CAAC,CAAC,CAAC;4BACZ,GAAG;4BACH,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;iBACzD;qBAAM;oBACL,YAAY;wBACV,SAAS,CAAC,CAAC,CAAC;4BACZ,GAAG;4BACH,SAAS,CAAC,CAAC,CAAC;4BACZ,GAAG;4BACH,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;iBACzD;gBAED,OAAO,YAAY,CAAA;aACpB;iBAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;gBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEjC,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;oBACZ,GAAG;oBACH,SAAS,CAAC,CAAC,CAAC;oBACZ,GAAG;oBACH,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACvD,CAAA;aACF;SACF;IACH,CAAC;IACD,MAAM,CAAC,kBAAkB,CAAC,IAAa;QACrC,IAAI;YACF,IACE,IAAI;gBACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAClB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBAChB,IAAI,CAAC,MAAM,KAAK,CAAC;oBACjB,IAAI,CAAC,MAAM,KAAK,CAAC;oBACjB,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,EACrB;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEjC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC5C,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBAE5C,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC7B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;qBACnC;oBAED,IACE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;wBACzB,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;wBACzB,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EACzB;wBACA,OAAO,SAAS,CAAA;qBACjB;oBAED,MAAM,YAAY,GAAG,IAAI,IAAI,CAC3B,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CACvD,CAAA;oBAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;oBAExC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;wBACrB,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;qBAC9D;yBAAM;wBACL,OAAO,SAAS,CAAA;qBACjB;iBACF;qBAAM;oBACL,OAAO,SAAS,CAAA;iBACjB;aACF;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IACD,MAAM,CAAC,kCAAkC,CAAC,QAAiB;QACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE;YACvC,OAAO,EAAE,CAAA;SACV;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9D,IAAI,MAAM,EAAE;YACV,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAEvC,OAAO,CACL,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CACxE,CAAA;SACF;aAAM;YACL,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IACD,MAAM,CAAC,0BAA0B,CAAC,IAAa;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,MAAM,EAAE;YACV,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACnC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;SAC9D;aAAM;YACL,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IACD,MAAM,CAAC,0BAA0B,CAAC,IAAa,EAAE,SAAmB;QAClE,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEjC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC5C,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAE5C,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;aACnC;YAED,IAAI,SAAS,EAAE;gBACb,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aACzC;YAED,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;SAC9D;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,WAAmB,EAAE,OAAe;QACtD,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;QAC1D,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;QAElD,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,IAAW;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QAEvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA;QAElD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEhD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAE5D,OAAO,aAAa,GAAG,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,SAAiB,EAAE,SAAiB;QACxD,SAAS,GAAG,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,CAAA;QAC9D,SAAS,GAAG,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,CAAA;QAE9D,OAAO,mBAAmB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,CAAC,kBAAkB;QACvB,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE;YACtC,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,sBAAsB;QAC3B,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,qBAAqB,EAAE;YAC/C,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,0BAA0B;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE;YACpD,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE;YAClD,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QAExE,OAAO,gBAAgB,CAAA;IACzB,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,IAAU;QAC1B,OAAO,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE;YAChC,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,SAAkB;QACxC,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;QAExB,IAAI,SAAS,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;SAC9C;QAED,OAAO,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE;YACnC,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,gBAAgB,CACrB,IAAW,EACX,QAAkB,EAClB,SAAmB;QAEnB,IAAI;YACF,IAAI,IAAI,EAAE;gBACR,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAElC,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE;oBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAEvC,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;wBACZ,GAAG;wBACH,SAAS,CAAC,CAAC,CAAC;wBACZ,GAAG;wBACH,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACvD,CAAA;iBACF;qBAAM,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;oBAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CACxD,CAAA;oBAED,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;wBAC9C,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,OAAO;qBACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAElB,IAAI,SAAS,EAAE;wBACb,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;wBACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;wBACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAErC,YAAY;4BACV,SAAS,CAAC,CAAC,CAAC;gCACZ,GAAG;gCACH,SAAS,CAAC,CAAC,CAAC;gCACZ,GAAG;gCACH,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gCACzB,GAAG;gCACH,QAAQ,CAAA;qBACX;oBAED,IAAI,QAAQ,EAAE;wBACZ,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;qBACxC;yBAAM;wBACL,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;qBAClC;iBACF;qBAAM;oBACL,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;oBACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACpC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACvB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACpC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACvB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAEtC,MAAM,YAAY,GAChB,UAAU,CAAC,CAAC,CAAC;wBACb,GAAG;wBACH,UAAU,CAAC,CAAC,CAAC;wBACb,GAAG;wBACH,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACxD,KAAK;wBACL,UAAU,CAAC,CAAC,CAAC;wBACb,GAAG;wBACH,UAAU,CAAC,CAAC,CAAC,CAAA;oBAEf,IAAI,QAAQ,EAAE;wBACZ,OAAO,YAAY,CAAA;qBACpB;yBAAM;wBACL,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;qBACzC;iBACF;aACF;iBAAM;gBACL,OAAO,EAAE,CAAA;aACV;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,CAAA;SACV;IACH,CAAC;CACF;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"util.dates.js","sourceRoot":"","sources":["../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,MAAM,WAAW;IACP,MAAM,CAAC,kBAAkB,CAC/B,SAAkB,EAClB,QAAwB;QAExB,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,QAAQ,CAAA;SAChB;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAElD,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK;QAClC,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK;QACjC,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK;QACxD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAA;QAChD,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEzC,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CACf,IAAoB,EACpB,SAAS,GAAG,KAAK,EACjB,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,EAAE,CAAA;SACV;QAED,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QAEpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,UAAU,CACf,QAAwB,EACxB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAA;SACV;QAED,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAE5D,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,QAAwB,EACxB,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAA;SACV;QAED,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAE5D,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAA;QAChD,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEzC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;CACF;AAED,eAAe,WAAW,CAAA"}
@@ -1,19 +1,11 @@
1
1
  declare class RNDateUtils {
2
- static formatUSDate(date?: Date, shortYear?: boolean): string;
3
- static formatDateTimeZone(date?: string, shortYear?: boolean): string | undefined;
4
- static validateDateString(date?: string): string | undefined;
5
- static dateTimeStringBRToDateTimeStringUS(dateTime?: string): string;
6
- static dateStringBRToDateStringUS(date?: string): string;
7
- static dateStringUSToDateStringBR(date?: string, shortYear?: boolean): string | undefined;
8
- static compareDates(initialDate: string, endDate: string): number;
9
- static expiredDate(date?: Date): boolean;
10
- static minutesBetween(majorDate: string, minorDate: string): number;
11
- static getCurrentDateText(): string;
12
- static getCurrentDateTimeText(): string;
13
- static getCurrentDateTimeZoneText(): string;
14
- static formatDate(date: Date): string;
15
- static getDateFromToday(addMonths?: number): string;
16
- static formatJsDateTime(date?: Date, putHours?: boolean, shortYear?: boolean): string;
2
+ private static removeDateTimeZone;
3
+ static currentDate(shortYear?: boolean): string;
4
+ static currentTime(fullTime?: boolean): string;
5
+ static currentDateTime(shortYear?: boolean, fullTime?: boolean): string;
6
+ static formatDate(date?: Date | string, shortYear?: boolean, removeTimeZone?: boolean): string;
7
+ static formatTime(dateTime?: Date | string, fullTime?: boolean, removeTimeZone?: boolean): string;
8
+ static formatDateTime(dateTime?: Date | string, shortYear?: boolean, fullTime?: boolean, removeTimeZone?: boolean): string;
17
9
  }
18
10
  export default RNDateUtils;
19
11
  //# sourceMappingURL=util.dates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.dates.d.ts","sourceRoot":"","sources":["../../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"AAIA,cAAM,WAAW;IACf,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO;IA6CpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO;IAuC5D,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;IAiDvC,MAAM,CAAC,kCAAkC,CAAC,QAAQ,CAAC,EAAE,MAAM;IAkB3D,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,MAAM;IAU/C,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO;IAoBpE,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMxD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI;IAY9B,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM1D,MAAM,CAAC,kBAAkB;IAKzB,MAAM,CAAC,sBAAsB;IAK7B,MAAM,CAAC,0BAA0B;IAajC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI;IAK5B,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAW1C,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,EAAE,IAAI,EACX,QAAQ,CAAC,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO;CAkFtB;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"util.dates.d.ts","sourceRoot":"","sources":["../../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"AAEA,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC,MAAM,CAAC,WAAW,CAAC,SAAS,UAAQ;IAIpC,MAAM,CAAC,WAAW,CAAC,QAAQ,UAAQ;IAInC,MAAM,CAAC,eAAe,CAAC,SAAS,UAAQ,EAAE,QAAQ,UAAQ;IAO1D,MAAM,CAAC,UAAU,CACf,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,EACpB,SAAS,UAAQ,EACjB,cAAc,UAAQ;IAWxB,MAAM,CAAC,UAAU,CACf,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,EACxB,QAAQ,UAAQ,EAChB,cAAc,UAAQ;IAWxB,MAAM,CAAC,cAAc,CACnB,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,EACxB,SAAS,UAAQ,EACjB,QAAQ,UAAQ,EAChB,cAAc,UAAQ;CAazB;AAED,eAAe,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lfsoftwares/native-util",
3
- "version": "0.0.14",
3
+ "version": "0.0.17",
4
4
  "description": "Utility library for react native",
5
5
  "author": "Leandro Fernandes <lfsoftwares.solucoes@gmail.com>",
6
6
  "license": "MIT",
@@ -30,12 +30,12 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "^18.2.22",
33
- "date-fns": "^2.30.0",
34
33
  "expo-clipboard": "~4.3.1",
35
34
  "expo-constants": "~14.4.2",
36
35
  "expo-crypto": "~12.4.1",
37
36
  "expo-device": "~5.4.0",
38
37
  "expo-splash-screen": "~0.20.5",
38
+ "moment": "^2.29.4",
39
39
  "react": "^18.2.0",
40
40
  "react-native": "^0.72.4",
41
41
  "react-native-format-currency": "^0.0.3",
@@ -43,7 +43,6 @@
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@types/react": "*",
46
- "date-fns": "*",
47
46
  "expo-clipboard": "*",
48
47
  "expo-constants": "*",
49
48
  "expo-crypto": "*",
@@ -1,337 +1,83 @@
1
- import { Platform } from 'react-native'
2
- import { compareAsc, add, format, differenceInMinutes } from 'date-fns'
3
- import { pt } from 'date-fns/locale'
1
+ import moment from 'moment'
4
2
 
5
3
  class RNDateUtils {
6
- static formatUSDate(date?: Date, shortYear?: boolean) {
7
- try {
8
- if (date) {
9
- const dateString = date.toString()
10
-
11
- if (dateString.length === 10) {
12
- const dateParts = dateString.split('-')
13
-
14
- return (
15
- dateParts[2] +
16
- '/' +
17
- dateParts[1] +
18
- '/' +
19
- (shortYear ? dateParts[0].substring(2) : dateParts[0])
20
- )
21
- } else if (Platform.OS === 'ios') {
22
- const newDate = new Date(date.toString())
23
-
24
- const dateFormated = Intl.DateTimeFormat('pt-BR', {
25
- dateStyle: 'short',
26
- timeStyle: 'short',
27
- }).format(newDate)
28
-
29
- if (shortYear) {
30
- const onlyDate = dateFormated.split(' ')[0]
31
- const dateParts = onlyDate.split('/')
32
-
33
- return (
34
- dateParts[0] + '/' + dateParts[1] + '/' + dateParts[2].substring(2)
35
- )
36
- } else {
37
- return dateFormated.split(' ')[0]
38
- }
39
- } else {
40
- return shortYear
41
- ? format(date, 'dd/MM/yy', { locale: pt })
42
- : format(date, 'dd/MM/yyy', { locale: pt })
43
- }
44
- } else {
45
- return ''
46
- }
47
- } catch (e) {
4
+ private static removeDateTimeZone(
5
+ canRemove: boolean,
6
+ dateTime?: Date | string,
7
+ ) {
8
+ if (!dateTime) {
48
9
  return ''
49
10
  }
50
- }
51
- static formatDateTimeZone(date?: string, shortYear?: boolean) {
52
- // 2023-02-16T00:00:00.000Z ou 2023-02-16
53
- if (date && date.includes('-')) {
54
- if (date.includes('T')) {
55
- const onlyDate = date.split('T')[0]
56
- const dateParts = onlyDate.split('-')
57
11
 
58
- let formatedDate
59
-
60
- if (dateParts[0].length === 4) {
61
- formatedDate =
62
- dateParts[2] +
63
- '/' +
64
- dateParts[1] +
65
- '/' +
66
- (shortYear ? dateParts[0].substring(2) : dateParts[0])
67
- } else {
68
- formatedDate =
69
- dateParts[0] +
70
- '/' +
71
- dateParts[1] +
72
- '/' +
73
- (shortYear ? dateParts[2].substring(2) : dateParts[2])
74
- }
75
-
76
- return formatedDate
77
- } else if (date && date.length === 10) {
78
- const dateParts = date.split('-')
79
-
80
- return (
81
- dateParts[2] +
82
- '/' +
83
- dateParts[1] +
84
- '/' +
85
- (shortYear ? dateParts[0].substring(2) : dateParts[0])
86
- )
87
- }
12
+ if (!canRemove) {
13
+ return dateTime
88
14
  }
89
- }
90
- static validateDateString(date?: string) {
91
- try {
92
- if (
93
- date &&
94
- date.includes('/') &&
95
- (date.length === 6 ||
96
- date.length === 7 ||
97
- date.length === 8 ||
98
- date.length === 10)
99
- ) {
100
- const dateParts = date.split('/')
101
-
102
- if (dateParts.length === 3) {
103
- dateParts[0] = dateParts[0].padStart(2, '0')
104
- dateParts[1] = dateParts[1].padStart(2, '0')
105
-
106
- if (dateParts[2].length === 2) {
107
- dateParts[2] = '20' + dateParts[2]
108
- }
109
-
110
- if (
111
- dateParts[0].length !== 2 ||
112
- dateParts[1].length !== 2 ||
113
- dateParts[2].length !== 4
114
- ) {
115
- return undefined
116
- }
117
15
 
118
- const dateValidate = new Date(
119
- dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0],
120
- )
16
+ const dateTimeStr = moment(dateTime).toISOString()
121
17
 
122
- const validDate = dateValidate.getTime()
123
-
124
- if (!isNaN(validDate)) {
125
- return dateParts[0] + '/' + dateParts[1] + '/' + dateParts[2]
126
- } else {
127
- return undefined
128
- }
129
- } else {
130
- return undefined
131
- }
132
- } else {
133
- return undefined
134
- }
135
- } catch (e) {
136
- return undefined
137
- }
18
+ return dateTimeStr.split('.')[0]
138
19
  }
139
- static dateTimeStringBRToDateTimeStringUS(dateTime?: string) {
140
- if (!dateTime || dateTime.length !== 19) {
141
- return ''
142
- }
143
20
 
144
- const dateBR = this.validateDateString(dateTime.split(' ')[0])
145
-
146
- if (dateBR) {
147
- const dateParts = dateBR.split('/')
148
- const onlyTime = dateTime.split(' ')[1]
149
-
150
- return (
151
- dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0] + ' ' + onlyTime
152
- )
153
- } else {
154
- return ''
155
- }
21
+ static currentDate(shortYear = false) {
22
+ return moment().format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY')
156
23
  }
157
- static dateStringBRToDateStringUS(date?: string) {
158
- const dateBR = this.validateDateString(date)
159
24
 
160
- if (dateBR) {
161
- const dateParts = dateBR.split('/')
162
- return dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0]
163
- } else {
164
- return ''
165
- }
25
+ static currentTime(fullTime = false) {
26
+ return moment().format(fullTime ? 'HH:mm:ss' : 'HH:mm')
166
27
  }
167
- static dateStringUSToDateStringBR(date?: string, shortYear?: boolean) {
168
- if (date && date.includes('-') && date.length === 10) {
169
- const dateParts = date.split('-')
170
28
 
171
- dateParts[2] = dateParts[2].padStart(2, '0')
172
- dateParts[1] = dateParts[1].padStart(2, '0')
29
+ static currentDateTime(shortYear = false, fullTime = false) {
30
+ let mask = shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY'
31
+ mask += fullTime ? ' HH:mm:ss' : ' HH:mm'
173
32
 
174
- if (dateParts[0].length === 2) {
175
- dateParts[0] = '20' + dateParts[0]
176
- }
177
-
178
- if (shortYear) {
179
- dateParts[0] = dateParts[0].substring(2)
180
- }
181
-
182
- return dateParts[2] + '/' + dateParts[1] + '/' + dateParts[0]
183
- } else {
184
- return undefined
185
- }
33
+ return moment().format(mask)
186
34
  }
187
- static compareDates(initialDate: string, endDate: string) {
188
- initialDate = this.dateStringBRToDateStringUS(initialDate)
189
- endDate = this.dateStringBRToDateStringUS(endDate)
190
35
 
191
- return compareAsc(new Date(initialDate), new Date(endDate))
192
- }
193
- static expiredDate(date?: Date) {
194
- if (!date) return false
195
-
196
- if (date.toString().includes('1899')) return false
197
-
198
- const today = this.getCurrentDateText()
199
- const formatedDate = this.formatJsDateTime(date)
36
+ static formatDate(
37
+ date?: Date | string,
38
+ shortYear = false,
39
+ removeTimeZone = false,
40
+ ) {
41
+ if (!date) {
42
+ return ''
43
+ }
200
44
 
201
- const compareResult = this.compareDates(formatedDate, today)
45
+ date = this.removeDateTimeZone(removeTimeZone, date)
202
46
 
203
- return compareResult < 0
47
+ return moment(date).format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY')
204
48
  }
205
- static minutesBetween(majorDate: string, minorDate: string) {
206
- majorDate = this.dateTimeStringBRToDateTimeStringUS(majorDate)
207
- minorDate = this.dateTimeStringBRToDateTimeStringUS(minorDate)
208
49
 
209
- return differenceInMinutes(new Date(majorDate), new Date(minorDate))
210
- }
211
- static getCurrentDateText() {
212
- return format(new Date(), 'dd/MM/yyyy', {
213
- locale: pt,
214
- })
215
- }
216
- static getCurrentDateTimeText() {
217
- return format(new Date(), 'dd/MM/yyyy HH:mm:ss', {
218
- locale: pt,
219
- })
220
- }
221
- static getCurrentDateTimeZoneText() {
222
- const formatedDate = format(new Date(), 'yyyy-MM-dd', {
223
- locale: pt,
224
- })
225
-
226
- const formatedTime = format(new Date(), 'HH:mm:ss', {
227
- locale: pt,
228
- })
50
+ static formatTime(
51
+ dateTime?: Date | string,
52
+ fullTime = false,
53
+ removeTimeZone = false,
54
+ ) {
55
+ if (!dateTime) {
56
+ return ''
57
+ }
229
58
 
230
- const formatedDateTime = formatedDate.concat('T', formatedTime, '.000Z')
59
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime)
231
60
 
232
- return formatedDateTime
61
+ return moment(dateTime).format(fullTime ? 'HH:mm:ss' : 'HH:mm')
233
62
  }
234
- static formatDate(date: Date) {
235
- return format(date, 'dd/MM/yyyy', {
236
- locale: pt,
237
- })
238
- }
239
- static getDateFromToday(addMonths?: number) {
240
- let newDate = new Date()
241
-
242
- if (addMonths) {
243
- newDate = add(newDate, { months: addMonths })
244
- }
245
63
 
246
- return format(newDate, 'dd/MM/yyyy', {
247
- locale: pt,
248
- })
249
- }
250
- static formatJsDateTime(
251
- date?: Date,
252
- putHours?: boolean,
253
- shortYear?: boolean,
64
+ static formatDateTime(
65
+ dateTime?: Date | string,
66
+ shortYear = false,
67
+ fullTime = false,
68
+ removeTimeZone = false,
254
69
  ) {
255
- try {
256
- if (date) {
257
- const dateString = date.toString()
258
-
259
- if (dateString.length === 10) {
260
- const dateParts = dateString.split('-')
261
-
262
- return (
263
- dateParts[2] +
264
- '/' +
265
- dateParts[1] +
266
- '/' +
267
- (shortYear ? dateParts[0].substring(2) : dateParts[0])
268
- )
269
- } else if (Platform.OS === 'ios') {
270
- const newDate = new Date(
271
- date.toString().replace('00:00:00.000', '12:00:00.000'),
272
- )
273
-
274
- let dateFormated = Intl.DateTimeFormat('pt-BR', {
275
- dateStyle: 'short',
276
- timeStyle: 'short',
277
- }).format(newDate)
278
-
279
- if (shortYear) {
280
- const dateTimeParts = dateFormated.split(' ')
281
- const onlyDate = dateTimeParts[0]
282
- const onlyTime = dateTimeParts[1]
283
- const dateParts = onlyDate.split('/')
284
-
285
- dateFormated =
286
- dateParts[0] +
287
- '/' +
288
- dateParts[1] +
289
- '/' +
290
- dateParts[2].substring(2) +
291
- ' ' +
292
- onlyTime
293
- }
70
+ if (!dateTime) {
71
+ return ''
72
+ }
294
73
 
295
- if (putHours) {
296
- return dateFormated.replace(' ', ' - ')
297
- } else {
298
- return dateFormated.split(' ')[0]
299
- }
300
- } else {
301
- const newDate = date.toString().replace('00:00:00.000', '12:00:00.000')
302
- const onlyDate = newDate.includes('T')
303
- ? newDate.split('T')[0]
304
- : newDate.split(' ')[0]
305
- const onlyTime = newDate.includes('T')
306
- ? newDate.split('T')[1]
307
- : newDate.split(' ')[1]
308
- const fieldsDate = onlyDate.split('-')
309
- const fieldsTime = onlyTime.split(':')
74
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime)
310
75
 
311
- const dateFormated =
312
- fieldsDate[2] +
313
- '/' +
314
- fieldsDate[1] +
315
- '/' +
316
- (shortYear ? fieldsDate[0].substring(2) : fieldsDate[0]) +
317
- ' - ' +
318
- fieldsTime[0] +
319
- ':' +
320
- fieldsTime[1]
76
+ let mask = shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY'
77
+ mask += fullTime ? ' HH:mm:ss' : ' HH:mm'
321
78
 
322
- if (putHours) {
323
- return dateFormated
324
- } else {
325
- return dateFormated.split('-')[0].trim()
326
- }
327
- }
328
- } else {
329
- return ''
330
- }
331
- } catch (e) {
332
- return ''
333
- }
79
+ return moment(dateTime).format(mask)
334
80
  }
335
81
  }
336
82
 
337
- export default RNDateUtils
83
+ export default RNDateUtils