Quiero convertir una cadena que fue generada por el usuario a un tipo de datos Date. Quiero que la hora esté en formato de 24 horas

let dateFormatter = DateFormatter()
let timeAsString : String = "22:30"
dateFormatter.dateFormat = "HH:mm"

let timeFromString = dateFormatter.date(from: timeAsString)

resultado: "1 de enero de 2000 a las 10:30 p. m. "

Pero el resultado está en formato de 12 horas. ¿Cómo puedo obtener 22:30 como un tipo de datos de fecha?

-1
Alexa289 16 ene. 2018 a las 13:57

3 respuestas

La mejor respuesta

La fecha no tiene formato, por lo que solo puede cambiar la cadena convertida a partir de la fecha

Swift 4

 let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "HH:mm"
 let newDateString = dateFormatter.string(from: yourDate)

Para diferentes formatos de fecha, puede consultar nsdateformatter.com

9
Shan Ye 16 ene. 2018 a las 11:06

Su código es absolutamente correcto, no hay problema en su código. La cadena HH en formato de fecha representa el formato de visualización de 24 horas.

Pero el desarrollador (aplicación) no tiene control sobre el formato de tiempo. Puede establecer una cadena de formato de fecha que admita 24 horas, pero si el usuario (no habilitado) desactivó la asistencia de 24 horas desde el dispositivo, mostrará la hora para el formato de 12 horas.

Verifique el formato de hora de su dispositivo simulador / sistema mac / iPhone y configúrelo para una visualización de 24 horas.

Consulte este documento de Apple para obtener asistencia durante 24 horas: Formateadores de fecha

La representación de la hora puede ser a las 13:00. Sin embargo, en iOS, si el usuario ha cambiado el horario de 24 horas a apagado, la hora puede ser la 1:00 p.m.

2
Krunal 13 sep. 2019 a las 08:47
func convertToString(of dateTo: Date) -> String {

  let dateFormatter = CustomDateFormatter()

  //Your New Date format as per requirement change it own
  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
  let newDate: String = dateFormatter.string(from: dateTo) //pass Date here
  //  print(newDate) //New formatted Date string

  return newDate
 }
0
kenlukas 10 ene. 2019 a las 15:05