时间格式包含冒号(:) iOS 12.2不支持

问题描述 投票:4回答:2

我正在使用包含iPhone SEiOS 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的问题?

ios swift nsdateformatter
2个回答
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)

Console Log

MM代表几个月,而不是几分钟。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.