Ios 转换后的无效日期12小时->;24小时
我想将上午/下午时间转换为24小时。那应该是微不足道的。。。但我反对一个奇怪的问题:Ios 转换后的无效日期12小时->;24小时,ios,swift,nsdateformatter,Ios,Swift,Nsdateformatter,我想将上午/下午时间转换为24小时。那应该是微不足道的。。。但我反对一个奇怪的问题: let inputDateString = "11:05:45PM" let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "HH:mm:ssa" let inputDate = dateFormatter.dateFromString(inputDateString) // "Jan 1, 2000, 12:05 PM" ???
let inputDateString = "11:05:45PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm:ssa"
let inputDate = dateFormatter.dateFromString(inputDateString) // "Jan 1, 2000, 12:05 PM" ???
if let inputDate = inputDate {
dateFormatter.dateFormat = "HH:mm:ss"
print(dateFormatter.stringFromDate(inputDate))
}
systemLocale
或gblocale,但没有任何帮助import Foundation
轻松地将其粘贴到操场上进行测试
为什么我的时间错了
--编辑--
如果将
inputDateString
更改为任何其他时间,如“01:05:45PM”
,则inputDate
将是相同的:/但是如果更改分钟或秒,它将相应地更新。您需要将日期格式更改为“hh:mm:ssa”
,因为小写的h
表示输入时间为12小时格式
DateFormatter使用Unicode标准进行格式化,因此它使用中的值(自2016年8月起对macOS 10.9和iOS 7及更新版本有效)
可在上找到更易于使用的参考资料 第一种格式应该是
hh:mm:ssa
2000年1月1日,因为您希望读取的日期不是日期,而是时间。它将默认值放入其中。@pedrouan这不是问题所在。无论如何,答案已经在下面;)。我看到了。只想澄清一下@ViveThe第二个是一个非常好的参考,谢谢你的URL!DateFormatter按照字面意思解释格式字符串。a
只是告诉它,这是可以找到AM/PM信息的位置。他还需要知道实际输入的小时数是12小时(hh
)还是24小时(hh
)格式。这与20分钟前发布并被接受的@ast1相同。这个答案有什么好处?
let inputDateString = "11:05:45PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm:ssa" // Here, change the format string to "hh:mm:ssa"
let inputDate = dateFormatter.dateFromString(inputDateString) // "Jan 1, 2000, 12:05 PM" ???
if let inputDate = inputDate {
dateFormatter.dateFormat = "HH:mm:ss"
print(dateFormatter.stringFromDate(inputDate))
}