-3
我有一个时区为String
类型,我想在Swift 4中获取该时区的日期(格式为dd:mm:yyyy
)和时间(格式为hh:mm:ss
)。做这个?从swift4中的时区获取日期和时间
我见过日历库,但我不明白如何看到它来解决我的问题。
我有一个时区为String
类型,我想在Swift 4中获取该时区的日期(格式为dd:mm:yyyy
)和时间(格式为hh:mm:ss
)。做这个?从swift4中的时区获取日期和时间
我见过日历库,但我不明白如何看到它来解决我的问题。
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"
顺便说一句,而马塞尔向您介绍如何设置'dateFormat'达到你想要什么,你应该问自己生成的字符串的目的是什么。例如,如果它用于与Web服务交换或保存在数据库中,则应设置'dateFormat',但还要指定UTC的'en_US_POSIX'和'timeZone'的'locale'。但是如果它是用UI显示的,你不应该使用'dateFormat',而应该使用'dateStyle'和'timeStyle',所以日期和时间以用户的首选格式显示,而不是你的。例如。所以美国用户可以看到2017年10月28日,但英国用户可以看到2017年10月28日。 – Rob
https://stackoverflow.com/a/28347285/2303865 –