Estoy creando un script que guarda muchas capturas de pantalla consecutivas. Me gustaría guardar los archivos en el formato de fecha ISO 8601.
Estoy creando un script que guarda muchas capturas de pantalla consecutivas. Me gustaría guardar los archivos en el formato de fecha ISO 8601.
Para obtener la fecha en formato ISO 8601, use:
on date_to_iso(dt)
set {year:y, month:m, day:d} to dt
set y to text 2 through -1 of ((y + 10000) as text)
set m to text 2 through -1 of ((m + 100) as text)
set d to text 2 through -1 of ((d + 100) as text)
return y & "-" & m & "-" & d
end date_to_iso
on date_time_to_iso(dt)
set {year:y, month:m, day:d, hours:h, minutes:min, seconds:s} to dt
set y to text 2 through -1 of ((y + 10000) as text)
set m to text 2 through -1 of ((m + 100) as text)
set d to text 2 through -1 of ((d + 100) as text)
set h to text 2 through -1 of ((h + 100) as text)
set min to text 2 through -1 of ((min + 100) as text)
set s to text 2 through -1 of ((s + 100) as text)
return y & "-" & m & "-" & d & "T" & h & ":" & min & ":" & s
end date_time_to_iso
Puede llamar a estos con, por ejemplo:
set dt to current date
date_to_iso(dt)
da algo así como "2013-10-23"
set dt to current date
date_time_to_iso(dt)
da algo como "2013-10-23T14: 00: 05"
Fuente: AppleScript Fecha a formato ISO
No hay un único formato de fecha ISO 8601: por ejemplo, 20130823, 2013W43 y 2013-123 son fechas válidas ISO 8601.
Si te refieres al formato como 2013-10-23T21: 03: 34, los dos puntos no son caracteres válidos en los nombres de archivo en el Finder u otras aplicaciones GUI. Los dos puntos en el shell se muestran como barras en Finder y viceversa.
Esto usaría un formato como 20131023210334:
do shell script "screencapture ~/Desktop/$(date +%Y%y%m%d%H%M%S).png"
date -u +%FT%TZ
(donde -u establece la zona horaria en UTC) usaría un formato como el 2013-10-23T18: 03: 34Z, pero los dos puntos se mostrarían como barras diagonales en las aplicaciones GUI.
Lea otras preguntas en las etiquetas applescript