@@ -203,3 +203,52 @@ describe('DST, a time that never existed Fall Back', () => {
203
203
} )
204
204
} )
205
205
} )
206
+
207
+ describe ( 'set Default' , ( ) => {
208
+ it ( 'default timezone' , ( ) => {
209
+ const dateStr = '2014-06-01 12:00'
210
+ dayjs . tz . setDefault ( NY )
211
+ const newYork = dayjs . tz ( dateStr )
212
+ expect ( newYork . format ( ) ) . toBe ( '2014-06-01T12:00:00-04:00' )
213
+ expect ( newYork . utcOffset ( ) ) . toBe ( - 240 )
214
+ expect ( newYork . valueOf ( ) ) . toBe ( 1401638400000 )
215
+
216
+ expect ( dayjs ( dateStr ) . tz ( ) . format ( ) ) . toBe ( dayjs ( dateStr ) . tz ( NY ) . format ( ) )
217
+ } )
218
+
219
+ it ( 'empty timezone means local timezone' , ( ) => {
220
+ const LOCAL_TZ = dayjs . tz . guess ( )
221
+ const dateStr = '2014-06-01 12:00'
222
+ dayjs . tz . setDefault ( )
223
+ expect ( dayjs ( dateStr ) . tz ( ) . valueOf ( ) ) . toBe ( dayjs ( dateStr ) . tz ( LOCAL_TZ ) . valueOf ( ) )
224
+ expect ( dayjs . tz ( dateStr ) . valueOf ( ) ) . toBe ( dayjs . tz ( dateStr , LOCAL_TZ ) . valueOf ( ) )
225
+ } )
226
+
227
+ it ( 'change default timezone' , ( ) => {
228
+ dayjs . tz . setDefault ( NY )
229
+ const newYork = dayjs . tz ( '2014-06-01 12:00' )
230
+ expect ( newYork . utcOffset ( ) ) . toBe ( - 240 )
231
+
232
+ dayjs . tz . setDefault ( TOKYO )
233
+ const tokyo = dayjs . tz ( '2014-06-01 12:00' )
234
+ expect ( tokyo . format ( ) ) . toBe ( '2014-06-01T12:00:00+09:00' )
235
+ expect ( tokyo . format ( 'Z' ) ) . toBe ( '+09:00' )
236
+ expect ( tokyo . valueOf ( ) ) . toBe ( 1401591600000 )
237
+ } )
238
+
239
+ it ( 'override default timezone in proto.tz' , ( ) => {
240
+ dayjs . tz . setDefault ( NY )
241
+ const tokyo = dayjs . tz ( '2014-06-01 12:00' , TOKYO )
242
+ expect ( tokyo . format ( ) ) . toBe ( '2014-06-01T12:00:00+09:00' )
243
+ expect ( tokyo . format ( 'Z' ) ) . toBe ( '+09:00' )
244
+ expect ( tokyo . valueOf ( ) ) . toBe ( 1401591600000 )
245
+ } )
246
+
247
+ it ( 'override default timezone in d.tz' , ( ) => {
248
+ dayjs . tz . setDefault ( NY )
249
+ const tokyo = dayjs . tz ( '2014-06-01 12:00' , TOKYO )
250
+ expect ( tokyo . format ( ) ) . toBe ( '2014-06-01T12:00:00+09:00' )
251
+ expect ( tokyo . format ( 'Z' ) ) . toBe ( '+09:00' )
252
+ expect ( tokyo . valueOf ( ) ) . toBe ( 1401591600000 )
253
+ } )
254
+ } )
0 commit comments