我正在尝试使用以下代码(swift 4.0、Xcode 10.2)打印日期(例如生日):
let formatter = DateFormatter()
formatter.timeStyle = .short
formatter.dateStyle = .short
formatter.locale = Locale(identifier: "en_US")
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let DOB = formatter.date(from: "2019/05/01 22:30")
当我打印(DOB)时,“2019-05-02 05:30:00 +0000”
看起来本地、.short
设置都没有影响结果。
怎么了。我如何才能简单地打印:“2019/05/01 22:30”?
最佳答案
您当前正在做的是将字符串转换为日期
。 Date
不包含有关它们如何显示的信息。它们都以相同的方式打印:2019-05-02 05:30:00 +0000。
字符串 具有格式,因此您应该使用日期格式化程序将刚刚获得的日期
转换回字符串。基本上,您有两个格式化程序:一个用于将字符串转换为日期,另一个用于将日期转换回字符串
let stringToDateformatter = DateFormatter()
stringToDateformatter.dateFormat = "yyyy/MM/dd HH:mm"
let DOB = stringToDateformatter.date(from: "2019/05/01 22:30")
let dateToStringFormatter = DateFormatter()
dateToStringFormatter.timeStyle = .short
dateToStringFormatter.dateStyle = .short
dateToStringFormatter.locale = Locale(identifier: "en_US")
let DOBString = dateToStringFormatter.string(from: DOB!)
print(DOBString) // 5/1/19, 10:30 PM
关于swift - 如何使用 Swift 4.0 获取简短的本地日期/时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55946786/