Help us understand the problem. What is going on with this article?

[Swift] [iOS] [令和] 和暦西暦変換は端末日付に依存する

2019年4月8日、iOS 12.3 beta2が開発者向けにリリースされました。
https://developer.apple.com/documentation/ios_release_notes/ios_12_3_beta_2_release_notes
上記リリースノートにある通り、令和に対応したバージョンです。

早速ダウンロードして色々試してみたところ、端末の日付が「2019/4/30以前」と「2019/5/1以降」で、Calendarコンポーネントの挙動が変わりました。

以下のサンプルコードで挙動を確認していて「へぇ」と思いました。
(実務ではレアな実装かと思いますが)

// 和暦の31/04/01を西暦に変換してみる
var comp = DateComponents()
comp.year = 31
comp.month = 4
comp.day = 1
let date = (Calendar.init(identifier: .japanese)).date(from: comp)
let formatter = DateFormatter()
formatter.locale = Locale.init(identifier: "ja_JP")
formatter.dateFormat = "yyyy/MM/dd"
print("\(formatter.string(from: date!))")
// 端末の日付が2019/4/30以前の場合、平成31年と判断され、"2019/04/01"となる。
// 端末の日付が2019/5/1以降の場合、令和31年と判断され、"2049/04/01"となる。

私は(何の根拠もなく)端末の日付設定とは無関係に「iOS 12.3にアップデート後は常に令和n年と判定される」と予想していたので、上記の挙動は予想外でした。

蛇足ですが、令和に未対応のiOS 12.2以前では、端末の日付が2019/4/30以前でも5/1以降でも、31年→2019年、32年→2020年になります。
平成までしかデータが入っていないので当たり前ですね。

環境:
Xcode 10.1
Swift 4.2

※ご注意
あくまでbetaでの情報ですので、最新の情報とは異なっている可能性があります。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away