@lfsoftwares/native-util 0.0.16 → 0.0.18

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,65 @@
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');
15
+ }
16
+ static currentTime(fullTime = false) {
17
+ return moment().format(fullTime ? 'HH:mm:ss' : 'HH:mm');
18
+ }
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);
121
23
  }
122
- static dateTimeStringBRToDateTimeStringUS(dateTime) {
123
- if (!dateTime || dateTime.length !== 19) {
24
+ static formatDate(date, shortYear = false, removeTimeZone = false) {
25
+ if (!date) {
124
26
  return '';
125
27
  }
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 {
28
+ date = this.removeDateTimeZone(removeTimeZone, date);
29
+ return moment(date).format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY');
30
+ }
31
+ static formatTime(dateTime, fullTime = false, removeTimeZone = false) {
32
+ if (!dateTime) {
133
33
  return '';
134
34
  }
35
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime);
36
+ return moment(dateTime).format(fullTime ? 'HH:mm:ss' : 'HH:mm');
135
37
  }
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 {
38
+ static formatDateTime(dateTime, shortYear = false, fullTime = false, removeTimeZone = false) {
39
+ if (!dateTime) {
143
40
  return '';
144
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);
145
46
  }
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];
47
+ static formatGluedTime(time, fullTime = false) {
48
+ if (!time && time !== 0) {
49
+ return '';
158
50
  }
159
- else {
160
- return undefined;
51
+ let mask = fullTime ? 'HH:mm:ss' : 'HH:mm';
52
+ let timeStr = String(time);
53
+ if (timeStr.length < 4) {
54
+ timeStr = timeStr.padStart(4, '0');
161
55
  }
162
- }
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 });
56
+ if (fullTime && timeStr.length < 6) {
57
+ timeStr = timeStr.padStart(6, '0');
212
58
  }
213
- return format(newDate, 'dd/MM/yyyy', {
214
- locale: pt,
215
- });
216
- }
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) {
288
- return '';
59
+ else if (!fullTime && timeStr.length > 4) {
60
+ timeStr = timeStr.slice(0, 4);
289
61
  }
62
+ return moment(timeStr, mask).format(mask);
290
63
  }
291
64
  }
292
65
  export default RNDateUtils;
@@ -1 +1 @@
1
- {"version":3,"file":"util.dates.js","sourceRoot":"","sources":["../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.dates.js","sourceRoot":"","sources":["../../../src/DateUtils/util.dates.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,12 @@
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;
9
+ static formatGluedTime(time?: number | string, fullTime?: boolean): string;
17
10
  }
18
11
  export default RNDateUtils;
19
12
  //# 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;IAcxB,MAAM,CAAC,eAAe,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,UAAQ;CAqBnB;AAED,eAAe,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lfsoftwares/native-util",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
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,107 @@
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
15
 
110
- if (
111
- dateParts[0].length !== 2 ||
112
- dateParts[1].length !== 2 ||
113
- dateParts[2].length !== 4
114
- ) {
115
- return undefined
116
- }
16
+ const dateTimeStr = moment(dateTime).toISOString()
117
17
 
118
- const dateValidate = new Date(
119
- dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0],
120
- )
121
-
122
- const validDate = dateValidate.getTime()
18
+ return dateTimeStr.split('.')[0]
19
+ }
123
20
 
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
- }
21
+ static currentDate(shortYear = false) {
22
+ return moment().format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY')
138
23
  }
139
- static dateTimeStringBRToDateTimeStringUS(dateTime?: string) {
140
- if (!dateTime || dateTime.length !== 19) {
141
- return ''
142
- }
143
24
 
144
- const dateBR = this.validateDateString(dateTime.split(' ')[0])
25
+ static currentTime(fullTime = false) {
26
+ return moment().format(fullTime ? 'HH:mm:ss' : 'HH:mm')
27
+ }
145
28
 
146
- if (dateBR) {
147
- const dateParts = dateBR.split('/')
148
- const onlyTime = dateTime.split(' ')[1]
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'
149
32
 
150
- return (
151
- dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0] + ' ' + onlyTime
152
- )
153
- } else {
154
- return ''
155
- }
33
+ return moment().format(mask)
156
34
  }
157
- static dateStringBRToDateStringUS(date?: string) {
158
- const dateBR = this.validateDateString(date)
159
35
 
160
- if (dateBR) {
161
- const dateParts = dateBR.split('/')
162
- return dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0]
163
- } else {
36
+ static formatDate(
37
+ date?: Date | string,
38
+ shortYear = false,
39
+ removeTimeZone = false,
40
+ ) {
41
+ if (!date) {
164
42
  return ''
165
43
  }
166
- }
167
- static dateStringUSToDateStringBR(date?: string, shortYear?: boolean) {
168
- if (date && date.includes('-') && date.length === 10) {
169
- const dateParts = date.split('-')
170
44
 
171
- dateParts[2] = dateParts[2].padStart(2, '0')
172
- dateParts[1] = dateParts[1].padStart(2, '0')
45
+ date = this.removeDateTimeZone(removeTimeZone, date)
173
46
 
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
- }
47
+ return moment(date).format(shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY')
186
48
  }
187
- static compareDates(initialDate: string, endDate: string) {
188
- initialDate = this.dateStringBRToDateStringUS(initialDate)
189
- endDate = this.dateStringBRToDateStringUS(endDate)
190
49
 
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)
50
+ static formatTime(
51
+ dateTime?: Date | string,
52
+ fullTime = false,
53
+ removeTimeZone = false,
54
+ ) {
55
+ if (!dateTime) {
56
+ return ''
57
+ }
200
58
 
201
- const compareResult = this.compareDates(formatedDate, today)
59
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime)
202
60
 
203
- return compareResult < 0
61
+ return moment(dateTime).format(fullTime ? 'HH:mm:ss' : 'HH:mm')
204
62
  }
205
- static minutesBetween(majorDate: string, minorDate: string) {
206
- majorDate = this.dateTimeStringBRToDateTimeStringUS(majorDate)
207
- minorDate = this.dateTimeStringBRToDateTimeStringUS(minorDate)
208
63
 
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
- })
64
+ static formatDateTime(
65
+ dateTime?: Date | string,
66
+ shortYear = false,
67
+ fullTime = false,
68
+ removeTimeZone = false,
69
+ ) {
70
+ if (!dateTime) {
71
+ return ''
72
+ }
225
73
 
226
- const formatedTime = format(new Date(), 'HH:mm:ss', {
227
- locale: pt,
228
- })
74
+ dateTime = this.removeDateTimeZone(removeTimeZone, dateTime)
229
75
 
230
- const formatedDateTime = formatedDate.concat('T', formatedTime, '.000Z')
76
+ let mask = shortYear ? 'DD/MM/YY' : 'DD/MM/YYYY'
77
+ mask += fullTime ? ' HH:mm:ss' : ' HH:mm'
231
78
 
232
- return formatedDateTime
233
- }
234
- static formatDate(date: Date) {
235
- return format(date, 'dd/MM/yyyy', {
236
- locale: pt,
237
- })
79
+ return moment(dateTime).format(mask)
238
80
  }
239
- static getDateFromToday(addMonths?: number) {
240
- let newDate = new Date()
241
81
 
242
- if (addMonths) {
243
- newDate = add(newDate, { months: addMonths })
244
- }
245
-
246
- return format(newDate, 'dd/MM/yyyy', {
247
- locale: pt,
248
- })
249
- }
250
- static formatJsDateTime(
251
- date?: Date,
252
- putHours?: boolean,
253
- shortYear?: boolean,
82
+ static formatGluedTime(
83
+ time?: number | string,
84
+ fullTime = false,
254
85
  ) {
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
- }
86
+ if (!time && time !== 0) {
87
+ return ''
88
+ }
294
89
 
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(':')
90
+ let mask = fullTime ? 'HH:mm:ss' : 'HH:mm'
91
+ let timeStr = String(time)
310
92
 
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]
93
+ if (timeStr.length < 4) {
94
+ timeStr = timeStr.padStart(4, '0')
95
+ }
321
96
 
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 ''
97
+ if (fullTime && timeStr.length < 6) {
98
+ timeStr = timeStr.padStart(6, '0')
99
+ } else if (!fullTime && timeStr.length > 4) {
100
+ timeStr = timeStr.slice(0, 4)
333
101
  }
102
+
103
+ return moment(timeStr, mask).format(mask)
334
104
  }
335
105
  }
336
106
 
337
- export default RNDateUtils
107
+ export default RNDateUtils