【发布时间】:2018-02-28 13:58:43
【问题描述】:
我正在尝试从字符串构造日期。日期采用 .islamic 日历。我正在使用以下代码
let StringValue = "1439/01/02"
//constructing the Hijri Date
let HijriFormatter = DateFormatter ()
HijriFormatter.calendar = Calendar(identifier: .islamic)
HijriFormatter.dateFormat="yyyy/MM/dd"
HijriFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
let hijriDate = HijriFormatter.date(from: StringValue)
print (hijriDate!)
输出应该类似于字符串。但是,由于某种原因,我得到以下输出:
2017-09-22 00:00:00 +0000
知道代码为什么会这样
【问题讨论】:
-
您打印
Date- 这是一个绝对时间点,并且始终使用 UTC 打印。 stackoverflow.com/questions/39937019/… 的可能重复项 -
马丁是对的。当您执行以下操作时,您可以验证格式化程序是否设置正确:
HijriFormatter.string(from: hijriDate!)这将为您提供一个类似于原始字符串的字符串(因为它与传递的格式匹配)。