我的时区为String
类型,我希望在Swift 4中的此时区中获取日期(格式为dd:mm:yyyy
)和时间(格式为hh:mm:ss
)。我可以这样做吗?
我已经看过日历库,但我不明白如何看待它来解决我的问题。
答案 0 :(得分:2)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd:MM:yyy hh:mm:ss"
let timeZone = TimeZone(identifier: "Europe/Amsterdam")
dateFormatter.timeZone = timeZone
dateFormatter.string(from: Date())
虽然,我认为格式"dd-MM-yyyy HH:mm:ss"
似乎更正确。话说回来;在解析自定义日期格式时,应使用设置dateFormat
来设置格式。在格式化要向用户显示的日期时,应使用用户期望的日期格式(在默认系统区域设置中)。为此,您应该使用dateStyle
和timeStyle
:
dateFormatter.dateStyle = .medium
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017"
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017 Oct 28, 2017 at 11:19:13 PM"