iOS Date() returns 不正确的值
iOS Date() returns incorrect value
我正在使用以下代码获取 iOS 设备日期。
let today = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd"
let currentDate = dateFormatter.string(from: today)
print("todayDate : \(currentDate)")
dateFormatter.dateFormat = "MM"
let currentMonth = dateFormatter.string(from: today)
print("currentMonth : \(currentMonth)")
dateFormatter.dateFormat = "YYYY"
let currentYear = dateFormatter.string(from: today)
print("currentYear : \(currentYear)")
当我在 iPhone 设置 29-12-2019 或 30-12-2019 或 31-12-2019 中更改设备日期时。 currentMonth 和 currentDate 值是正确的。但是,currentYear return 值是 2020 而不是 2019。请建议我解决这个问题。
A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), used in the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year.
see this for help : Challenges of DateFormatters
使用你的日期格式
"yyyy" is ordinary calendar year.
dateFormatter.dateFormat = "yyyy"
而不是
"YYYY" is week-based calendar year.
dateFormatter.dateFormat = "YYYY"
最后根据你的问题,
let today = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy"
let currentYear = dateFormatter.string(from: today)
print("currentYear : \(currentYear)")
你得到的输出是
我正在使用以下代码获取 iOS 设备日期。
let today = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd"
let currentDate = dateFormatter.string(from: today)
print("todayDate : \(currentDate)")
dateFormatter.dateFormat = "MM"
let currentMonth = dateFormatter.string(from: today)
print("currentMonth : \(currentMonth)")
dateFormatter.dateFormat = "YYYY"
let currentYear = dateFormatter.string(from: today)
print("currentYear : \(currentYear)")
当我在 iPhone 设置 29-12-2019 或 30-12-2019 或 31-12-2019 中更改设备日期时。 currentMonth 和 currentDate 值是正确的。但是,currentYear return 值是 2020 而不是 2019。请建议我解决这个问题。
A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), used in the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year. see this for help : Challenges of DateFormatters
使用你的日期格式
"yyyy" is ordinary calendar year.
dateFormatter.dateFormat = "yyyy"
而不是
"YYYY" is week-based calendar year.
dateFormatter.dateFormat = "YYYY"
最后根据你的问题,
let today = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy"
let currentYear = dateFormatter.string(from: today)
print("currentYear : \(currentYear)")
你得到的输出是