【发布时间】:2021-07-23 05:04:35
【问题描述】:
我正在尝试从字符串日期(“2020 年 4 月 19 日”)和今天的日期格式(Date() 只是格式)之间转换 这是我用来转换的代码。
/// Create String
let string = (dict["Birthday"] as? String)!
// Create Date Formatter
let dateFormatter = DateFormatter()
// Origin date "Apr 19, 2020"
dateFormatter.dateFormat = "MMM d, YYYY"
// Convert String to Date format 2020-04-19
print(dateFormatter.date(from: string))
但是当我运行它时,我得到完全不同的日期.. 2021-04-29 22:20:53.888471+0300 有人可以帮助我吗? PS如何删除不必要的部分并只留下日期? 谢谢!
【问题讨论】:
-
使用小写的 y 表示年份,yyyy。除了将其转换回字符串之外,您无法删除时间部分。
-
首先非常感谢您的快速回复!我做到了,我得到了这个:2020-04-18 21:00:00 +0000,日期不正确(应该是 2020-04-19)以及如何删除不必要的部分?但日期仍然不正确,我该如何解决?
-
如果您处于与 GMT 不同的时区,这很可能是正确的,在打印这样的日期时总是使用该时区。就像我说的,如果你想删除时间部分,你需要另一个 DateFormatter 并将日期转换为字符串
-
好的!现在知道了,非常感谢!
-
命令
print(someDateObject)always 以UTC 格式打印日期。避免这种情况。尝试改用print(DateFormatter.localizedString(from: someDateObject,dateStyle: .medium, timeStyle: .medium)。这将打印您当地时区的日期,并使用适合您的语言环境的格式。