我正在使用包含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
的问题?
只需将日期格式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代表几个月,而不是几分钟。
如果要显示小时和分钟(加上午/下午),您的格式字符串应为"h:mm a"
。每当您想要包含不是直接格式说明符的字符时,建议将它们包含在单引号中。所以你也可以使用"h':'mm a"
。请注意,您在示例中使用的说明符包括MM
(大写字母M),它代表数月,而不是分钟。