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 de la 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 Zona Horaria
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 IANA, aunque actualmente son compatibles.
- Puede encontrar información adicional en https://www.iana.org/time-zones.
Convertir Tiempos de Unix en 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 conversiones 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 de la 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
, ten 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 fecha -
inputFormat
: Una cadena de formato, especificando el formato de la fecha de entrada -
outputFormat
: 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 de la 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
, ten 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(Now(), "UTC", "yyyy-mm-ddTHH:MM:SS.zzzZ") | el 31/01/17 a las 12:39:13.310 p.m. en MST | 2017-01-31T19:39:13.310Z |
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 en strftime
para obtener 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ónnumber
: 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 |
Precaución
Cuando se utiliza con las versiones del agente 10.83/11.21 o anteriores, el DateAdd
la función devuelve el valor incorrecto al proporcionar la parte de fecha del mes (mm
o m
) y un entero negativo que es múltiplo de 12
(12
, 24
, 36
, etc.). Esto da como resultado que el año de la fecha devuelta se reduzca incorrectamente en un año adicional.
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 una 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 fecha -
time_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. Cuandotrue
, el formato es día y luego mes; cuandofalse
, 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 de la 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
, ten 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 fecha -
time_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. Cuandotrue
, el formato es día y luego mes; cuandofalse
, 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 de la 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
, ten 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 Necesarios
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 de la 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 funciones de conversión, tenga esto en cuenta si su 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 de la 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 funciones de conversión, tenga esto en cuenta si su 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"