Формат времени содержит двоеточие (:) Не поддерживается iOS 12.2 - PullRequest
4 голосов
/ 16 апреля 2019

Я использую 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?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2019

Просто измените формат даты 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

ММ, что означает месяцы, а не минуты.

1 голос
/ 16 апреля 2019

Если вы хотите отобразить часы и минуты (плюс am / pm), ваша строка формата должна быть "h:mm a".Всякий раз, когда вы хотите включить символы, которые не являются непосредственно спецификаторами формата, рекомендуется включать их в одинарные кавычки.Так что вы также можете использовать "h':'mm a".Обратите внимание, что спецификатор, который вы использовали в вашем примере, включает MM (заглавная M), который обозначает месяцы, а не минуты.

...