@@ -432,15 +432,45 @@ class TestDateFormatter: XCTestCase {
432
432
433
433
formatter. locale = Locale ( identifier: " ja_JP " )
434
434
formatter. calendar = Calendar ( identifier: . japanese)
435
- formatter. dateFormat = " Gy年M月dd日 HH:mm"
435
+ formatter. dateFormat = " Gy年M月d日 HH:mm"
436
436
formatter. timeZone = TimeZone ( abbreviation: " JST " )
437
437
438
- // parse test
439
- let parsed = formatter. date ( from: " 平成31年4月30日 23:10 " )
440
- XCTAssertEqual ( parsed? . timeIntervalSince1970, 1556633400 ) // April 30, 2019, 11:10 PM (JST)
438
+ do {
439
+ // parse test
440
+ let parsed = formatter. date ( from: " 平成31年4月30日 23:10 " )
441
+ XCTAssertEqual ( parsed? . timeIntervalSince1970, 1556633400 ) // April 30, 2019, 11:10 PM (JST)
442
+
443
+ // format test
444
+ let dateString = formatter. string ( from: Date ( timeIntervalSince1970: 1556633400 ) ) // April 30, 2019, 11:10 PM (JST)
445
+ XCTAssertEqual ( dateString, " 平成31年4月30日 23:10 " )
446
+ }
447
+
448
+ // Test for new Japanese era (starting from May 1, 2019)
449
+ do {
450
+ // parse test
451
+ let parsed = formatter. date ( from: " 令和1年5月1日 23:10 " )
452
+ XCTAssertEqual ( parsed? . timeIntervalSince1970, 1556719800 ) // May 1st, 2019, 11:10 PM (JST)
453
+
454
+ // format test
455
+ let dateString = formatter. string ( from: Date ( timeIntervalSince1970: 1556719800 ) ) // May 1st, 2019, 11:10 PM (JST)
456
+ XCTAssertEqual ( dateString, " 令和1年5月1日 23:10 " )
457
+ }
458
+
459
+ // Test for new Japanese era and 元年 representaion of 1st year
460
+ // This block needs ICU 64.2
441
461
442
- // format test
443
- let dateString = formatter. string ( from: Date ( timeIntervalSince1970: 1556633400 ) ) // April 30, 2019, 11:10 PM (JST)
444
- XCTAssertEqual ( dateString, " 平成31年4月30日 23:10 " )
462
+ // Disabled until the ICU is updated.
463
+ // do {
464
+ // // parse test
465
+ // let parsed = formatter.date(from: "令和元年5月1日 23:10")
466
+ // XCTAssertEqual(parsed?.timeIntervalSince1970, 1556719800) // May 1st, 2019, 11:10 PM (JST)
467
+ //
468
+ // let parsedAlt = formatter.date(from: "令和1年5月1日 23:10")
469
+ // XCTAssertEqual(parsedAlt?.timeIntervalSince1970, 1556719800) // May 1st, 2019, 11:10 PM (JST)
470
+ //
471
+ // // format test
472
+ // let dateString = formatter.string(from: Date(timeIntervalSince1970: 1556719800)) // May 1st, 2019, 11:10 PM (JST)
473
+ // XCTAssertEqual(dateString, "令和元年5月1日 23:10")
474
+ // }
445
475
}
446
476
}
0 commit comments