Подтвердить что ты не робот

Xcode swift am/pm время до 24-часового формата

Я пытаюсь преобразовать время формата am/pm в 24-часовой формат времени

6:35 PM to 18:35

Я пробовал этот кусок кода на детской площадке, но он не кажется работа, если я поставлю время в одиночку

let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil

Кто-нибудь знает, как это сделать?

Спасибо.

4b9b3361

Ответ 1

Просто преобразуйте его в дату, используя NSDateFormatter и формат "h: mm a", и преобразуйте его обратно в строку, используя формат "HH: mm". Ознакомьтесь с этим руководством по форматированию даты, чтобы ознакомиться с этим материалом.

enter image description here

let dateAsString = "6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "h:mm a"
let date = dateFormatter.dateFromString(dateAsString)

dateFormatter.dateFormat = "HH:mm"
let date24 = dateFormatter.stringFromDate(date!)

Ответ 2

Свифт 3

Формат времени от 24 часов до 12 часов

let dateAsString = "13:15"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"

let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "h:mm a"
let Date12 = dateFormatter.string(from: date!)
print("12 hour formatted Date:",Date12)

вывод будет отформатирован 12 часов. Дата: 13:15

Формат времени от 12 часов до 24 часов

let dateAsString = "1:15 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"

let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "HH:mm"

let Date24 = dateFormatter.string(from: date!)
print("24 hour formatted Date:",Date24)

Выходные данные будут отформатированы в течение 24 часов. Дата: 13:15

Ответ 3

Ниже приведена версия 3 быстрого решения -

let dateAsString = "6:35:58 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm:ss a"
let date = dateFormatter.date(from: dateAsString)

dateFormatter.dateFormat = "HH:mm:ss"
let date24 = dateFormatter.string(from: date!)
print(date24)

Ответ 4

Swift версия 3.0.2, версия Xcode 8.2.1 (8C1002) (формат 12 часов):

func getTodayString() -> String{

        let formatter = DateFormatter()
        formatter.dateFormat = "h:mm:ss a "
        formatter.amSymbol = "AM"
        formatter.pmSymbol = "PM"

        let currentDateStr = formatter.string(from: Date())
        print(currentDateStr)
        return currentDateStr 
}

ВЫХОД: 12:41:42 AM

Не стесняйтесь комментировать. Благодаря

Ответ 5

Вот код для другого пути

Для Swift 3

 func amAppend(str:String) -> String{
    var temp = str
    var strArr = str.characters.split{$0 == ":"}.map(String.init)
    var hour = Int(strArr[0])!
    var min = Int(strArr[1])!
    if(hour > 12){
        temp = temp + "PM"
    }
    else{
        temp = temp + "AM"
    }
    return temp
}

Ответ 6

Я использую функцию здесь, в моем случае, когда я обновляю метку с нормальным временем, и после этого я сохраняю выбранный формат времени 24hr для выполнения некоторых других задач.

Вот мой код...

func timeUpdate(sender: NSDate)
{
    let timeSave = NSDateFormatter() //Creating first object to update time label as 12hr format with AM/PM
    timeSave.timeStyle = NSDateFormatterStyle.ShortStyle //Setting the style for the time selection.
    self.TimeShowOutlet.text = timeSave.stringFromDate(sender) // Getting the string from the selected time and updating the label as 1:40 PM
    let timeCheck = NSDateFormatter() //Creating another object to store time in 24hr format.
    timeCheck.dateFormat = "HH:mm:ss" //Setting the format for the time save.
    let time = timeCheck.stringFromDate(sender) //Getting the time string as 13:40:00
    self.timeSelectedForCheckAvailability = time //At last saving the 24hr format time for further task.
}

После записи этой функции вы можете вызвать это, когда вы выбираете время с даты/времени.

Спасибо, Надеюсь, это помогло.

Ответ 7

Опрос в течение 24 часов в течение 24 часов в течение 24 месяцев после начала работы.

func ObtenerHora24()-> String {
 let date = Date()
 let calendar = Calendar.current
 let hour = calendar.component(.hour, from: date)
 let minutes = calendar.component(.minute, from: date)
 let seconds = calendar.component(.second, from: date)
 var h = "\(hour)"
 var m = "\(minutes)"
 var s = "\(seconds)"
 if hour < 10{
     h = "0\(hour)"
 }
 if minutes < 10{
     m = "0\(minutes)"
 }
 if seconds < 10{
     s = "0\(seconds)"
 }
 return "\(h):\(m):\(s)"
}

Ответ 8

let calendar = Calendar.current
let hours    = calendar.component(.hour, from: Date())
let minutes  = calendar.component(.minute, from: Date())
let seconds  = calendar.component(.second, from: Date())