2017-07-26 63 views
0
var dateComponents: DateComponents = (Calendar.current as NSCalendar).components([NSCalendar.Unit.day, NSCalendar.Unit.month, NSCalendar.Unit.year, NSCalendar.Unit.hour, NSCalendar.Unit.minute, NSCalendar.Unit.second], from: dateToFix) 
dateComponents.hour = 11 
dateComponents.minute = 58 
dateComponents.second = 00 

let fixedDate: Date = Calendar.current.date(from: dateComponents)! 
print(fixedDate) 

let formatter = DateFormatter() 
formatter.dateStyle = DateFormatter.Style.long 
formatter.timeStyle = DateFormatter.Style.medium 
formatter.dateFormat = "yyyy-MM-dd h:mm a" 
let dateString = formatter.string(from: fixedDate) 
print(dateString) 

我的输出:2017年7月26日上午11点58分,但我想2017年7月26日下午11时58设置上午或下午迄今为止

回答

2

变化:

dateComponents.hour = 11 

要:

dateComponents.hour = 23 
+0

@torinopitchers这项工作。感谢您的建议。 –

0

确实将dateComponents.hour更改为24小时值,因为它期望您提供1-24位数字。

文件说:

enter image description here