Funciones de Fecha y Hora¶
Introducción¶
Si está utilizando estas funciones junto con el Now
o Now_
funciones, tenga en cuenta que la huso horario devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si está utilizando una función de conversión, tenga esto en cuenta si su proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Nota
Si tiene la configuración Anular la Huso Horario del Agente de programación habilitada en las políticas de su organización, cualquier secuencias de comandos que utilice funciones de fecha y hora como se describe aquí no se anulará con la huso horario seleccionada.
Códigos de Huso Horario¶
Los parámetros de huso horario son uno de los códigos de huso horario estándar, ya sea un nombre completo (código TZ) como "America/Los_Angeles"
, un desplazamiento UTC como "UTC-8:00"
, o una abreviatura como "PST" (código de tres letras). Los códigos de zona horaria distinguen entre mayúsculas y minúsculas. Se recomiendan los códigos TZ de nombre completo, si se utiliza una huso horario, ya que "AST" puede referirse a la hora estándar "atlántica" o "árabe".
- Los códigos TZ (una lista no oficial) se pueden encontrar en https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
- Los códigos de tres letras se enumeran en https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations. Estos están en desuso por la IANA, aunque actualmente es compatible.
- Puede encontrar información adicional en https://www.iana.org/time-zones.
Conversión de Tiempos UNIX a Fechas¶
Si una hora UNIX es un número que incluye precisión de milisegundos, puede usar un código similar a este para convertir una hora UNIX en una fecha:
// If you have a UNIX timestamp with milliseconds such as
createdate = "1478119530707";
// You can convert it to a date by
// truncating the last three digits and using FormatDate:
date = double(Left(createdate, 10));
FormatDate(date, "yyyy-mm-dd");
ConvertTimeZone
¶
Declaración¶
string ConvertTimeZone(date d, string fromTZ, string toTZ[, bool is_european_format, bool ignoreDST])
string ConvertTimeZone(string d, string fromTZ, string toTZ[, bool is_european_format, bool ignoreDST])
Sintaxis¶
ConvertTimeZone(<d>, <fromTZ>, <toTZ>[, <is_european_format>, <ignoreDST>])
Parámetros Requeridos¶
date
: Una fecha, ya sea como un objeto de fecha o como una cadena de fechafromTZ
: La huso horario desde la que se va a convertir, expresada como código de huso horariotoTZ
: La huso horario a la que se va a convertir, expresada como código de huso horario
Parámetros Opcionales¶
-
is_european_format:
Esta bandera opcional determina si se utilizará el formato de fecha europeo. Cuandotrue
, el formato es día y luego mes; cuandofalse
, el formato es mes y luego día. -
ignoreDST:
De forma predeterminada, el horario de verano se tiene en cuenta al realizar la conversión entre las cuatro principales husos horarios de EE. UU. Establezca esta bandera opcional entrue
para anular esta acción.
Descripción¶
Toma una fecha y la devuelve convertida de una huso horario a otra huso horario.
Nota
Si está utilizando ConvertTimeZone
en conjunto con Now
o Now_
, tenga en cuenta que la huso horario devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si está utilizando una función de conversión, como ConvertTimeZone
, toma esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
ConvertTimeZone(Now(), "UTC", "America/Los_Angeles", false, false);
// If Now() returns "2017-03-10 18:34:37"
// returns "2017-03-10 10:34:37"
ConvertTimeZone("02/06/2017 5:25:00", "America/Los_Angeles", "America/New_York");
// Returns "2017-02-06 08:25:00" (shifts the time by 3 hours)
CVTDate
¶
Declaración¶
string CVTDate(date d, string inputFormat, string outputFormat)
string CVTDate(string d, string inputFormat, string outputFormat)
Sintaxis¶
CVTDate(<d>, <inputFormat>, <outputFormat>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fechainputFormat
: Una cadena de formato, especificando el formato de la fecha de entradaoutputFormat
: Una cadena de formato, especificando el formato de la fecha de salida.
Descripción¶
Convierte un objeto de fecha o una cadena de fecha en el formato de entrada en una cadena de fecha en el formato de salida.
Nota
Si está utilizando CVTDate
en conjunto con Now
o Now_
, tenga en cuenta que la huso horario devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si está utilizando una función de conversión, como CVTDate
, toma esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
En estos ejemplos, se supone que todos los agentes se ejecutan en la nube y que las horas devueltas serían UTC. "myDate"
es la fecha 19 de junio de 1994.
Fórmula | Entrada | Salida |
---|---|---|
CVTDate(myDate, "mmddyy", "yyyymmdd") | 061994 | 19940619 |
CVTDate(myDate, "mmddyy", "ShortDate") | 061994 | 6/19/94 |
CVTDate(myDate, "mmddyy", "LongDate") | 061994 | Sunday, June 19, 1994 |
CVTDate(Now(), "GeneralDate","dd-mmm-yy, HH:MM AP") | el 31/01/17 a las 12:39 p.m. en MST | 31-Jan-17, 07:39 PM |
CVTDate(Now(), "GeneralDate","dd-mmm-yy, HH:MM.SS AP") | el 31/01/17 a las 12:39:13 p.m. en MST | 31-Jan-17, 07:39:13 PM |
CVTDate(Now_(), "GeneralDate","ddmmmyyyy, HH:MM:SS.zzz AP") | el 31/01/17 a las 12:39:13.310 p.m. en MST | 31Jan2017, 07:39:13.310 PM |
CVTDate(Now(), "GeneralDate","yyyy_mm_dd_HH_MM") | el 31/01/17 a las 12:39:13.310 p.m. en MST | 2017_01_31_19_39_13 |
CVTDate(myDate, "mmddyy", "%Y%m%d%a") | 061994 | 19940619Sun |
CVTDate(myDate, "mmddyy", "%Y %m %d %a") | 061994 | 1994 06 19 Sun |
CVTDate(myDate, "mmddyy", "%Y %m %d %A") | 061994 | 1994 06 19 Sunday |
formato de Cadenas¶
El formato tanto de la cadena de fecha de entrada como de la cadena de fecha de salida se especifican de la misma manera utilizando caracteres como marcadores de posición o uno de los cuatro formatos de fecha predefinidos (GeneralDate, LongDate, MediumDate,
o ShortDate
).
Para las entradas, el año, mes, día, hora, minuto, segundo y AM/PM se leen de la cadena de fecha en la posición donde y, m, d, H, M, S, SSS,
y AP
aparecen en la cadena de formato de entrada.
Para las salidas, la cadena de formato se copia en la cadena de datos con el año, mes, día, hora, minuto y segundo reemplazando los caracteres de y, m, d, H, M, S, SSS
, y AP
.
Alternativamente, las sustituciones utilizadas en el método ANSI C strftime
puede ser usado. Por ejemplo, la cadena "%Y-%m-%d"
daría como resultado el formato de fecha ISO 8601 (yyyy-mm-dd
). Consulte la documentación externa sobre strftime
para una descripción detallada.
Estos códigos pueden aparecer según sea necesario en la cadena de formato para especificar cómo leer la entrada o escribir la salida:
Formato | Entrada o Salida |
---|---|
yyyy | Año de 4 dígitos |
yy | (último) año de 2 dígitos |
??yy | Año de 2 o 4 dígitos |
mmm | Enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre |
mm | Mes de 2 dígitos (01-12) |
?m | Mes de 1 o 2 dígitos (1-12) |
ddd | Fecha juliana (001-366) |
dd | Día de 2 dígitos (01-31) |
?d | Día de 1 o 2 dígitos (1-31) |
HH | Hora (00-23) o (01-12) si se especifica AM/PM usando AP |
MM | Minuto (00-59) |
SS | Segundo (00-59) |
zzz | Milisegundo (.001-.999) |
AP | AM o PM |
GeneralDate | 19/06/94 17:34:23 |
LongDate | Domingo 19 de junio de 1994 |
MediumDate | 19 de junio de 1994 |
ShortDate | 19/06/94 |
DateAdd
¶
Declaración¶
string DateAdd(string datePart, int number, date d)
string DateAdd(string datePart, int number, string d)
Sintaxis¶
DateAdd(<datePart>, <number>, <d>)
Parámetros Requeridos¶
datePart
: Un código de pieza que describe la parte de la fecha a la que se aplicará la adición anumber
: Un número entero que se agregará a la parte de la fechad
: El objeto de fecha o una cadena de fecha en la que se operará
Descripción¶
Devuelve una cadena de fecha después de agregar un número a una parte especificada de un objeto de fecha.
Estos códigos se utilizan para describir las partes de la fecha:
Fecha Parte | Código de pieza |
---|---|
Año | yyyy o yy |
Mes | mm o m |
Semana | ww o wk |
Día | dd |
Hora | hh |
Minuto | mi o n |
Segundo | ss o s |
Ejemplos¶
DateAdd("yyyy", 1, Now());
// Adding one year to a date
// If Now() returns 2017-03-10 18:46:41
// returns "2018-03-10 18:46:41"
DateAdd("dd", 1, "2017-03-10");
// Adding one day to a date
// Returns "2017-03-11"
DayOfMonth
¶
Declaración¶
int DayOfMonth(date d)
int DayOfMonth(string d)
Sintaxis¶
DayOfMonth(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve el día del mes (1-31) de un objeto de fecha o cadena de fecha.
Ejemplos¶
DayOfMonth(Now());
// Returns 25 if today is December 25
DayOfWeek
¶
Declaración¶
int DayOfWeek(date d)
int DayOfWeek(string d)
Sintaxis¶
DayOfWeek(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve el día de la semana para un objeto de fecha o cadena de fecha, con 0 para el domingo, 1 para el lunes y 6 para el sábado.
Esta definición es independiente de la localidad. Para el nombre del día de la semana, llame FormatDate
en cambio.
Ejemplos¶
DayOfWeek(Now());
// Returns 0, if today is Sunday
Now() + (6 - DayOfWeek(Now()))*24*60*60;
// Returns the date object of the last day of the current week,
// assuming Saturday (day 6) is the last day of the week
FormatDate
¶
Declaración¶
string FormatDate(date d, string format)
string FormatDate(string d, string format)
Sintaxis¶
FormatDate(<d>, <format>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fechaformat
: Una cadena de formato, especificando el formato de la fecha de salida.
Descripción¶
Convierte un objeto de fecha en una cadena según una cadena de formato. Esto es similar al CVTDate
función y utiliza las mismas cadenas de formato.
Ejemplos¶
FormatDate(Now(),"%w");
// Similar to DayOfWeek(Now()), except the return value
// is a string value of today's weekday name, such as "Wed"
FormatDate("2017-12-07","%A");
// Returns the weekday name of the date string, such as "Thursday"
LPadChar(String(Long(FormatDate(d, "yyyy")) - 1900), "0", 3) + FormatDate(d, "ddd");
// Returns, for a date d, a string formatted as a JD Edwards Date ("CYYDDD")
// If d = "2000-12-31" (a leap year), returns "100366"
// See https://docs.oracle.com/cd/E26228_01/doc.93/e21961/julian_date_conv.htm#WEAWX259
GeneralDate
¶
Declaración¶
string GeneralDate(date d)
string GeneralDate(string d)
Sintaxis¶
GeneralDate(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en el formato de fecha general para un objeto de fecha o una cadena de fecha.
Ejemplos¶
GeneralDate(Now());
// If Now() is 11:59:23 am on September 16, 2000,
// returns "09/16/2000 11:59:23 AM"
GeneralDate("2017-12-07");
// Returns "12/07/2017 12:00:00 AM"
GetUTCFormattedDate
¶
Declaración¶
string GetUTCFormattedDate(date d, string time_zone_id[, bool is_european_format])
string GetUTCFormattedDate(string d, string time_zone_id[, bool is_european_format])
Sintaxis¶
GetUTCFormattedDate(<d>, <time_zone_id>[, <is_european_format>])
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fechatime_zone_id
: La huso horario desde la que se va a convertir, expresada como código de huso horario
Parámetros Opcionales¶
is_european_format
: Esta bandera opcional determina si se utilizará el formato de fecha europeo. Cuando es verdadero, el formato es día y luego mes; cuando es falso, el formato es mes y luego día.
Descripción¶
Devuelve una cadena de fecha sin información de hora. Convierte un objeto de fecha o una cadena de fecha en una cadena según un código de huso horario.
Advertencia
Si pasa una fecha con una hora, el GetUTCFormattedDate()
La función trunca la hora antes de convertir a UTC. Esto significa que las marcas de tiempo posteriores a la medianoche UTC se devolverán como si ocurrieran en la fecha anterior, como se muestra en el ejemplo anterior para el "America/Los_Angeles"
huso horario.
Nota
Si está utilizando GetUTCFormattedDate
en conjunto con Now
o Now_
, tenga en cuenta que la huso horario devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si está utilizando una función de conversión, como GetUTCFormattedDate
, toma esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
// If Now() is 2017-12-09 18:46:41, then:
GetUTCFormattedDate(Now(), "UTC", false);
// Returns "2017-12-09"
GetUTCFormattedDate(Now(), "America/Los_Angeles", false);
// Returns "2017-12-09"
GetUTCFormattedDateTime
¶
Declaración¶
string GetUTCFormattedDateTime(date d, string time_zone_id[, bool is_european_format])
string GetUTCFormattedDateTime(string d, string time_zone_id[, bool is_european_format])
Sintaxis¶
GetUTCFormattedDateTime(<d>, <time_zone_id>[, <is_european_format>])
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fechatime_zone_id
: La huso horario desde la que se va a convertir, expresada como código de huso horario
Parámetros Opcionales¶
is_european_format
: Esta bandera opcional determina si se utilizará el formato de fecha europeo. Cuando es verdadero, el formato es día y luego mes; cuando es falso, el formato es mes y luego día.
Descripción¶
Devuelve una cadena de fecha con información de hora. Convierte un objeto de fecha o una cadena de fecha en una cadena según un código de huso horario.
Nota
Si está utilizando GetUTCFormattedDateTime
en conjunto con Now
o Now_
, tenga en cuenta que la huso horario devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si está utilizando una función de conversión, como GetUTCFormattedDateTime
, toma esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
// If Now() is 2017-12-09 18:46:21, then:
GetUTCFormattedDateTime(Now(), "UTC", false);
// Returns "2017-12-09T18:46:21Z"
GetUTCFormattedDateTime(Now(), "America/Los_Angeles", false);
// Returns "2017-12-10T02:46:21Z"
LastDayOfMonth
¶
Declaración¶
date LastDayOfMonth(date d)
date LastDayOfMonth(string d)
Sintaxis¶
LastDayOfMonth(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve un objeto de fecha que representa el último día del mes para un objeto de fecha o una cadena de fecha.
Ejemplos¶
LastDayOfMonth(Now());
// If today is in February of a leap year,
// returns the date object of February 29
LongDate
¶
Declaración¶
string LongDate(date d)
string LongDate(string d)
Sintaxis¶
LongDate(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en el formato de fecha larga para un objeto de fecha o una cadena de fecha.
Ejemplos¶
LongDate(Now());
// If Now() is 11:59:23 am on September 16, 2000,
// returns "Saturday, September 16, 2000"
LongTime
¶
Declaración¶
string LongTime(date d)
string LongTime(string d)
Sintaxis¶
LongTime(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en formato de tiempo largo para un objeto de fecha o una cadena de fecha.
Ejemplos¶
LongTime(Now());
// If Now() is 11:59:23 am on September 16, 2000
// returns "11:59:23 AM"
MediumDate
¶
Declaración¶
string MediumDate(date d)
string MediumDate(string d)
Sintaxis¶
MediumDate(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en el formato de fecha medio para un objeto de fecha o una cadena de fecha.
Ejemplos¶
MediumDate(Now());
// If Now() is 11:59:23 am on September 16, 2000
// returns "16-Sep-00"
MediumTime
¶
Declaración¶
string MediumTime(date d)
string MediumTime(string d)
Sintaxis¶
MediumTime(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en formato de hora media para un objeto de fecha o una cadena de fecha.
Ejemplos¶
MediumTime(Now());
// If Now() is 11:59:23 am on September 16, 2000
// returns "11:59 AM"
MonthOfYear
¶
Declaración¶
int MonthOfYear(date d)
int MonthOfYear(string d)
Sintaxis¶
MonthOfYear(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve el mes (1-12) para un objeto de fecha o una cadena de fecha.
Ejemplos¶
MonthOfYear(Now());
// If Now() is 11:59:23 am on September 16, 2000
// returns "9"
Now
¶
Declaración¶
date Now()
Sintaxis¶
Now()
Descripción¶
Devuelve un objeto de fecha que representa los valores de fecha y hora en el momento en que se ejecutó la función. La fracción del segundo se trunca.
Nota
Tenga en cuenta que la huso horario de la fecha devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si estás utilizando funciones de conversión, ten esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
Now();
// If Now() is 11:59:23 am on September 16, 2000,
// returns a date object representing 09/16/2000 11:59:23 AM
Now_
¶
Declaración¶
date Now_()
Sintaxis¶
Now_()
Descripción¶
Devuelve un objeto de fecha que representa los valores de fecha y hora en el momento en que se ejecutó la función. El valor del tiempo incluye la fracción de segundo (milisegundos).
Nota
Tenga en cuenta que la huso horario de la fecha devuelta es la configurada en la máquina que ejecuta el agente. Todos los Agentes en Nube están en UTC. Los Agentes Privados variarán según la máquina específica en la que se ejecute cada agente. Si estás utilizando funciones de conversión, ten esto en cuenta si tu proyecto está diseñado para ejecutarse tanto en la nube como en un Agente Privado.
Ejemplos¶
Now_();
// If Now_() is 11:59:23.123 am on September 16, 2000
// returns a date object representing 09/16/2000 11:59:23.123 AM
ShortDate
¶
Declaración¶
string ShortDate(date d)
string ShortDate(string d)
Sintaxis¶
ShortDate(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en el formato de fecha corta para un objeto de fecha o una cadena de fecha.
Ejemplos¶
ShortDate(Now());
// If Now() is 11:59:23 am on September 16, 2017
// returns "9/16/17"
ShortTime
¶
Declaración¶
string ShortTime(date d)
string ShortTime(string d)
Sintaxis¶
ShortTime(<d>)
Parámetros Requeridos¶
d
: Un objeto de fecha o cadena de fecha
Descripción¶
Devuelve una cadena en formato de hora corta para un objeto de fecha o una cadena de fecha.
Ejemplos¶
ShortTime(Now());
// If Now() is 11:59:23 am on September 16, 2017
// returns "11:59"