【发布时间】:2021-02-02 09:23:47
【问题描述】:
我从服务器获取的日期是这种格式"2020-11-28T19:24:58.478641+05:30"
但我无法使用日期格式化程序将其转换为日期。
let input = "2020-11-28T19:24:58.478641+05:30"
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateStyle = .full
formatter.setLocalizedDateFormatFromTemplate("YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]")
formatter.timeStyle = .full
let date = formatter.date(from: input)
print(date)
print(date) 在任何情况下都返回 nil。我尝试在线转换这个在https://nsdateformatter.com/成功的@
IMG ->converted date on nsdateformatter.com
如何使服务器日期适应 iOS 现有的日期格式?
【问题讨论】:
-
需要哪种甲酸盐输出?
-
如果您使用日期格式,请停止使用
timeStyle和dateStyle,否则会破坏输出。想要一点小费吗?您的格式化程序所期望的字符串是:print(formatter.string(date: Date()),您会看到。还有YYYY、DD等,它区分大小写,我不认为你想要它们大写。这不是正则表达式,也不是[+HH:MM|-HH:MM|Z],这里不是小时,而是时区。 -
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"应该是诀窍。 -
是的,改成这种格式就可以了,非常感谢@Larme!
标签: ios swift date nsdateformatter dateformatter