Как получить время от даты, включая «0» в минутах? - PullRequest
0 голосов
/ 18 мая 2018

Я использую этот метод для получения времени в моем приложении:

let date = Date()
let calendar = Calendar.current

let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)

let day = calendar.component(.day, from: date)
let month = calendar.component(.month, from: date)
let year = calendar.component(.year, from: date)

timeStamp = ("\"\(hour):\(minutes)\"")
dateFull = ("\"\(day)/\(month)/\(year)\"")

print(dateFull)
print(timeStamp)

Когда я распечатываю timeStamp, он дает мне некоторые странные значения, когда «Минуты» меньше 10 часов, например, вместо«9:03» будет печатать «9: 3» и т. Д. Он не содержит 0 перед цифрой.Любой способ обойти это используя мой текущий метод?

Спасибо!

1 Ответ

0 голосов
/ 18 мая 2018
func convertDateToHourMin(date : Date) -> String{
        let calender = Calendar.current
        let components = calender.dateComponents([.hour,.minute,], from: date)
        var hour = String(components.hour!)
        var minute = String(components.minute!)

        if hour.count == 1{
            hour = "0\(hour)"
        }

        if minute.count == 1{
            minute = "0\(minute)"
        }

        return "\(hour)\(minute)"
}

или вы также можете написать так.

func convertDateToHourMin(date : Date) -> String{
    let calender = Calendar.current
    let components = calender.dateComponents([.hour,.minute,], from: date)
    let dateInString  = String(format: "%02d:%02d", Int(components.hour!) , Int(components.minute!))
    return dateInString
}
...