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

标签 swift xcode

我正在尝试使用以下代码(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/

相关文章:

swift - Swift 中 String 的 4 位哈希

ios - 保存坐标或更新帧

IOS:触摸Imageview时的事件

ios - 如何在 AVAudioRecorder 中控制 Opus 比特率

ios - 限制特定尺寸类别的方向

ios - textField :shouldChangeCharactersInRange method? 内的多个语句

objective-c - Xcode 中 NSManagedObject 属性的默认值

ios - Xcode 6 beta 中缺少默认框架

xcode - 如何在xcode中创建cocos2dx-3.0项目?

Swift 3 - Bundle.main.path 在不同目录中具有相同的文件名