首页 > 解决方案 > 用于 Japanase 日历的 Swift iOS DateFormatter

问题描述

我正在从 zip 文件中提取日期,如果日历是日文,它会提取此字符串:

[R 2/03/13 19:00:17]

即 2020 年 3 月 13 日 19:00:17

dateFormatter.locale = Locale(identifier: "ja_JP")我在正在打印的 iOS 文档中找到 :

// Japanese Locale (ja_JP)
dateFormatter.locale = Locale(identifier: "ja_JP")
print(dateFormatter.string(from: date)) // 2001/01/02

通过在互联网上搜索,我认为“R”是指令和时代。

是否存在可以给出年份的 dateFormat ?

就像是:

let stringJap = "[R 2/03/13 19:00:17]"
let stringJapDate = stringJap.replacingOccurrences(of: "[", with: "").replacingOccurrences(of: "]", with: "")
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "ja_JP")
dateFormatter.dateFormat = "? y-MM-dd HH:mm:ss" // the "?" means if is existing a character to describe Era in Japanase
let date = dateFormatter.date(from:stringJapDate)!

我会避免按照下表构建一个开关盒来提取年份。

我在互联网上发现了这个时代的转换:

2019 年至今~令和时代 西历 日历 西历 日历 2020 令和 2 2019 令和 1 / 平成 31

1989 - 2019 ~ Heisei Era
Western Calendar    Japanese Calendar   Western Calendar    Japanese Calendar
2019    Reiwa 1 / Heisei 31      
2018    Heisei 30   2003    Heisei 15
2017    Heisei 29   2002    Heisei 14
2016    Heisei 28   2001    Heisei 13
2015    Heisei 27   2000    Heisei 12
2014    Heisei 26   1999    Heisei 11
2013    Heisei 25   1998    Heisei 10
2012    Heisei 24   1997    Heisei 9
2011    Heisei 23   1996    Heisei 8
2010    Heisei 22   1995    Heisei 7
2009    Heisei 21   1994    Heisei 6
2008    Heisei 20   1993    Heisei 5
2007    Heisei 19   1992    Heisei 4
2006    Heisei 18   1991    Heisei 3
2005    Heisei 17   1990    Heisei 2
2004    Heisei 16   1989    Heisei 1 / Showa 64

有什么帮助吗?谢谢

标签: iosswiftiphoneipaddateformatter

解决方案


推荐阅读