¿Cómo obtengo el día de la semana como una cadena?
ios
objective-c
cocoa-touch
nsdate
Moshe
fuente
fuente
[dateFormatter weekdaySymbols]
(y similares), que devuelve un NSArray de NSStrings que comienza con el domingo en el índice 0.[gregorian setFirstWeekday:2];
y para el lunes 01/06/2015 recibo 2 ([components weekday]
). ¿Por qué? - Encuentro la respuesta aquíSolo usa estas tres líneas:
fuente
Muchas de las respuestas aquí están obsoletas. Esto funciona a partir de iOS 8.4 y le da el día de la semana como una cadena y como un número.
fuente
weekday
componente deNSCalendar
es unNSInteger
, deberá enviar[comps weekday]
a unint
, si es necesario, o de lo contrario mostrará una advertencia al respecto.Así es como lo haces en Swift 3 y obtienes un nombre de día localizado ...
fuente
fuente
Necesitaba un índice de día de la semana simple (gregoriano), donde 0 = domingo y 6 = sábado para usarlo en algoritmos de coincidencia de patrones. A partir de ahí, es una simple cuestión de buscar el nombre del día en una matriz utilizando el índice. Esto es lo que se me ocurrió que no requiere formateadores de fecha, NSCalendar o manipulación del componente de fecha:
fuente
Aquí está el código actualizado para Swift 3
Codigo:
Para imprimir el nombre del evento como cadena:
fuente
Creo que este tema es realmente útil, así que publico un código compatible con Swift 2.1 .
A cualquier lugar al que pueda llamar:
Swift 3.0
Como sugirió @ delta2flat, actualizo la respuesta dando al usuario la capacidad de especificar un formato personalizado.
fuente
La respuesta de Vladimir funcionó bien para mí, pero pensé que publicaría el enlace Unicode para las cadenas de formato de fecha.
http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
Este enlace es para iOS 6. Las otras versiones de iOS tienen diferentes estándares que se pueden encontrar en la documentación de X-Code.
fuente
De esta forma funciona en Swift:
Luego asigne los días de la semana a los números resultantes.
fuente
Tuve un problema bastante extraño para conseguir un día de la semana. Establecer el primer día de la semana no fue suficiente. También era necesario establecer la zona horaria. Mi solución de trabajo fue:
fuente
Swift 2: obtenga el día de la semana en una línea. ( basado en la respuesta de neoscribe )
fuente
hay tres símbolos que podemos usar para formatear el día de la semana:
Los siguientes dos documentos pueden ayudarlo.
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html
http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns
Manifestación:
puedes probar tu patrón en este sitio web:
http://nsdateformatter.com/
fuente