iOS Swift 当 iPad 和 iPhone 上的 运行 时,相同的代码会产生不同的日期格式

iOS Swift Same code results in different date formats when run on iPad and iPhone

我有一个 iPhone 应用程序,它在 iPad 上以 1x/2x 进行测试时会导致一些异常行为。

iPad 文本字段输出:25-Jul-2015 6:02 pm

iPhone 文本字段输出:2015 年 7 月 25 日,6:02 下午

我的日期格式代码如下:

dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.dateFormat = "MMM/dd/yyyy HH:mm Z"    // Already tried adding dateFormat, still no help.
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .ShortStyle

谁能告诉我这是怎么回事?我希望他们都使用相同的格式。 谢谢。

一旦通过字符串设置了自己的日期格式,就不应使用日期样式或时间样式对其进行限制。如果您没有定义任何自定义日期格式,则可以使用它。

你可以评论那两个 属性。

HH -> 将为您提供 24 小时格式的小时数。 如果您更喜欢 12 小时格式,请使用 -> hh

此外,z 将为您提供时区值。 要获得 AM/PM 你应该使用 -> a

将您的日期格式更改为 "MMM-dd-yyyy hh:mm a" 您将获得一致的输出 "Jul-17-2015 12:05 PM"

let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .ShortStyle
dateFormatter.dateFormat = "MMM/dd/yyyy HH:mm a"

上面的代码给出了格式化的日期字符串