2017-10-28 209 views
-3

我有一个时区为String类型,我想在Swift 4中获取该时区的日期(格式为dd:mm:yyyy)和时间(格式为hh:mm:ss)。做这个?从swift4中的时区获取日期和时间

我见过日历库,但我不明白如何看到它来解决我的问题。

+1

顺便说一句,而马塞尔向您介绍如何设置'dateFormat'达到你想要什么,你应该问自己生成的字符串的目的是什么。例如,如果它用于与Web服务交换或保存在数据库中,则应设置'dateFormat',但还要指定UTC的'en_US_POSIX'和'timeZone'的'locale'。但是如果它是用UI显示的,你不应该使用'dateFormat',而应该使用'dateStyle'和'timeStyle',所以日期和时间以用户的首选格式显示,而不是你的。例如。所以美国用户可以看到2017年10月28日,但英国用户可以看到2017年10月28日。 – Rob

+0

https://stackoverflow.com/a/28347285/2303865 –

回答

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来设置格式。在格式化要显示给用户的日期时,应该使用用户期望的日期格式(在默认系统区域设置中)。要做到这一点,你应该使用dateStyletimeStyle

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" 
相关问题