Usando Swift 4, ¿hay alguna manera de obtener una representación de cadena del formato de fecha de una configuración regional? Según la configuración regional de un iPhone, me gustaría saber si el formato es aaaa/mm/dd o mm/dd/aaaa.
Encontré todas las formas de cambiar un formato de fecha u obtener la fecha del formato de la configuración regional, pero no he podido averiguar cómo obtener el formato real.
Utilice DateFormatter dateFormat(fromTemplate:options:locale:) .
let userFormat = DateFormatter.dateFormat(fromTemplate: "yyyyMMdd", options: 0, locale: Locale.current) En los EE. UU., esto devuelve MM/dd/yyyy . En Alemania esto da dd.MM.yyyy .
Si alguna vez necesita obtener el formato de hora adecuado que también tenga en cuenta el formato de hora de 12/24 horas elegido por el usuario, use una plantilla de jms . La j es un especificador de formato especial, solo se usa con plantillas, que devuelve h o H para la hora según lo que sea apropiado.
Otra opción posible es crear un DateFormatter , establecer el dateStyle y el timeStyle deseados y luego leer la propiedad dateFormat :
var mydf = DateFormatter() mydf.dateStyle = .long // set as desired mydf.timeStyle = .full // set as desired print(mydf.dateFormat)Para los EE. UU. esto da:
MMMM d, y'at' h:mm:ss a zzzz
Para Alemania esto da:
d. MMMM y 'um' HH:mm:ss zzzz