我正在使用iPhone SE
,其中包含iOS 12.2
。我正在将日期转换为以下时间格式(h:MM a
),该格式可以转换正确的时间,但删除小时和分钟之间的冒号(:)。
我的代码转换时间如下:
static func getDateInWithoutTimeZone(format: String, from timeStamp: Int64) -> String? {
let date = Date(timeIntervalSince1970: TimeInterval(timeStamp))
let dateFormatter = DateFormatter()
dateFormatter.locale = NSLocale.current
dateFormatter.dateFormat = format //Specify your format that you want
return dateFormatter.string(from: date)
}
我正在使用此方法转换时间,其中时间戳包含UNIX
之类的1555395758
时间值
我正在使用上述功能,如下所示:
guard let time = Date.getDateInWithoutTimeZone(format: "h:MM a", from: 1555395758) else {
return
}
并获得以下输出:
1104 AM
我做错什么了吗?还是iOS 12.2
有问题?
答案 0 :(得分:2)
只需将日期格式h:MM a
更改为hh:mm a
请参考以下代码。
static func getDateInWithoutTimeZone(format: String, from timeStamp: Int64) -> String? {
let date = Date(timeIntervalSince1970: TimeInterval(timeStamp))
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = format //Specify your format that you want
return dateFormatter.string(from: date)
}
guard let time = getDateInWithoutTimeZone(format: "hh:mm a", from: 1555395758) else {
return
}
print(time)
MM代表几个月,而不是几分钟。
答案 1 :(得分:1)
如果要显示小时和分钟(加上上午/下午),则格式字符串应为"h:mm a"
。每当您要包括不是直接格式说明符的字符时,建议将它们包括在单引号中。因此,您也可以使用"h':'mm a"
。请注意,您在示例中使用的说明符包括MM
(大写M),代表几个月,而不是几分钟。