Estoy construyendo un script que guarda muchas capturas de pantalla consecutivas. Me gustaría guardar los archivos en el formato de fecha ISO 8601.
Respuestas
¿Demasiados anuncios?Para obtener la fecha en formato ISO 8601, utilice:
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
Puedes llamar a estos con, por ejemplo:
set dt to current date
date_to_iso(dt)
da algo como "2013-10-23"
set dt to current date
date_time_to_iso(dt)
da algo como "2013-10-23T14:00:05"
Fuente: Fecha AppleScript a formato ISO
No existe un único formato de fecha ISO 8601: por ejemplo, 20130823, 2013W43 y 2013-123 son fechas ISO 8601 válidas.
Si te refieres al formato 2013-10-23T21:03:34, los dos puntos no son caracteres válidos en los nombres de archivo en Finder u otras aplicaciones de la interfaz gráfica de usuario. Los dos puntos en el shell se muestran como barras inclinadas en Finder y viceversa.
Esto utilizarí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) utilizaría un formato como 2013-10-23T18:03:34Z, pero los dos puntos se mostrarían como barras inclinadas en las aplicaciones GUI.