如何使用Swift 4.0获取简短的本地日期/时间格式?

如何使用Swift 4.0获取简短的本地日期/时间格式?,swift,xcode,Swift,Xcode,我正在尝试使用以下代码(swift 4.0,Xcode 10.2)打印日期(例如生日): 当我得到打印(DOB)时,“2019-05-02 05:30:00+0000” 看起来没有任何本地,.short设置影响结果 怎么了。如何简单地打印:“2019/05/01 22:30”您当前正在做的是将字符串转换为日期日期s不包含有关其显示方式的信息。它们的打印方式相同:2019-05-02 05:30:00+0000 字符串有格式,所以您应该使用日期格式化程序将刚刚得到的日期转换回字符串。基本上,您有两

我正在尝试使用以下代码(swift 4.0,Xcode 10.2)打印日期(例如生日):

当我得到打印(DOB)时,“2019-05-02 05:30:00+0000”

看起来没有任何本地,
.short
设置影响结果


怎么了。如何简单地打印:“2019/05/01 22:30”

您当前正在做的是将字符串转换为日期<代码>日期s不包含有关其显示方式的信息。它们的打印方式相同: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

您当前正在做的是将字符串转换为日期<代码>日期s不包含有关其显示方式的信息。它们的打印方式相同: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

您有一个
Date
对象,它不是本地化的,它只是一个奇特的unix时间戳。您需要再次使用
DateFormatter
来获得所需的本地化表示字符串。您有一个
Date
对象,它不是本地化的,只是一个花哨的unix时间戳。您需要再次使用
DateFormatter
,以获得所需的本地化表示字符串。谢谢。它起作用了。我假设如果我需要在将来使用日期,例如计算年龄,我将需要使用日期格式,即DOB而不是DOBstring。谢谢。它起作用了。我假设如果我需要使用日期供将来使用,例如计算年龄,我将需要使用日期格式,即DOB而不是DOBstring。如果它有效,请向上投票并接受我的答案,以便其他相关用户可以轻松找到它的工作,然后请向上投票并接受我的答案,以便其他相关用户可以轻松找到
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