swift中的日期格式出错了

时间:2016-07-17 06:01:37

标签: ios swift date

我需要以中等格式设置日期,例如:Jul 17, 2016 4:30:00 PM, 但我得到07/17/2016 4:30:00 p.m.

任何帮助都将受到高度赞赏。提前致谢。 这是我的代码:

 let dateFormatter = NSDateFormatter()

 dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
 dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle

 let mydate = dateFormatter.stringFromDate(NSDate())

2 个答案:

答案 0 :(得分:1)

对我来说,您使用的代码正是您所需要的。

如果您需要,可以使用MMM dd, yyyy h:mm a作为格式化程序对象的格式字符串来实现此目的。

代码如下:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy h:mm a"
let mydate = dateFormatter.stringFromDate(NSDate())
// "Jul 17, 2016 11:48 AM"

答案 1 :(得分:0)

您只需将日期格式化程序区域设置设置为“en_US_POSIX”,并且还应将格式化程序日历设置为ISO8601以获得您期望的结果:

Xcode 8 beta 2•Swift 3

let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .ISO8601)
dateFormatter.locale = Locale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
print(dateFormatter.string(from: Date()))  // "Jul 17, 2016, 4:09:48 AM\n"

Xcode 7.3.1•Swift 2.2.1

let dateFormatter = NSDateFormatter()
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .MediumStyle
print(dateFormatter.stringFromDate(NSDate()))  // "Jul 17, 2016, 4:12:49 AM\n"