El comando String devuelve en forma de cadena alfanumérica la expresión de tipo numérico, Fecha, Hora, cadena o Booleana que se pasa en expresion.
Si no pasa el parámetro opcional formato, la cadena se devuelve en el formato por defecto del tipo de datos correspondiente. Si pasa formato, puede definir el formato de la cadena resultante.
El parámetro opcional horaComb añade un tiempo a una fecha en un formato combinado. Sólo puede utilizarse cuando el parámetro expresion es una fecha (ver a continuación).
Expresiones numéricas
Si expresion es una expresión numérica (Real, Entero, Entero largo), puede pasar el formato de la cadena opcional. Estos son algunos ejemplos:
Ejemplo | Resultado | Comentarios |
String(2^15) | "32768" | Formato por defecto |
String(2^15;"###,##0 habitantes") | "32,768 habitantes" |
String(1/3;"##0.00000") | "0.33333" |
String(1/3) | "0.3333333333333330000" | Formato por defecto(*) |
String(Arctan(1)*4) | "3.141592653589790000" | Formato por defecto(*) |
String(Arctan(1)*4;"##0.00") | "3.14" |
String(-1;"&x") | "0xFFFFFFFF" |
String(-1;"&$") | "$FFFFFFFF" |
String(0 ?+ 7;"&x") | "0x0080" |
String(0 ?+ 7;"&$") | "$80" |
String(0 ?+ 14;"&x") | "0x4000" |
String(0 ?+ 14;"&$") | "$4000" |
String(50,3;"&xml") | "50.3" | Siempre "." como un separador decimal |
String(Num(1=1);"True;;False") | "True" |
String(Num(1=1);"True;;False") | "True" |
String(Num(1=2);"True;;False") | "False" |
String(Log(-1)) | "" | Número indefinido |
String(1/0) | "INF" | Número infinito positivo |
String(-1/0) | "-INF" | Número infinito positivo |
(*) A partir de 4D v14 R3, el algoritmo de conversión de reales a texto está basado en 13 dígitos significativos (contrarío a los 15 dígitos en versiones anteriores de 4D).
El formato se especifica de la misma forma que para un campo numérico en un formulario. Para mayor información sobre formatos numéricos, consulte la sección
Formatos de salida del manual de Diseño de 4D. Igualmente puede pasar el nombre de un estilo personalizado en
formato. El nombre del estilo personalizado debe estar precedido por el carácter
“|”.
Nota: la función
String no es compatible con campos de tipo "Entero 64 bits" en modo compilado.
Expresiones de tipo Fecha
Si expresion es de tipo Fecha, la cadena se devuelve en el formato por defecto definido en el sistema.
En el parámetro formato, puede pasar una de las constantes descritas a continuación (tema Formatos de salida de fechas):
En este caso, también puede pasar una hora en el parámetro horaComb. Este parámetro le permite combinar una fecha y una hora con el fin de generar marcadores de tiempo conforme a las normas vigentes (constantes ISO Date GMT y Date RFC 1123). Estos formatos son particularmente útiles en el contexto de los procesos XML y Web. El parámetro horaComb sólo se utiliza cuando el parámetro expresion es una fecha.
Constante |
Tipo |
Valor |
Comentario |
Blank if null date |
Entero largo |
100 |
"" en lugar de 0 en caso de valor nulo. Esta constante debe adicionarse al formato de visualización. |
Date RFC 1123 |
Entero largo |
10 |
Fri, 10 Sep 2010 13:07:20 GMT |
Internal date abbreviated |
Entero largo |
6 |
29 dic, 2006 |
Internal date long |
Entero largo |
5 |
29 diciembre 2006 |
Internal date short |
Entero largo |
7 |
|
Internal date short special |
Entero largo |
4 |
12/29/06 (pero 12/29/1896 o 12/29/2096) |
ISO Date |
Entero largo |
8 |
2006-12-29T00:00:00 (obsoleto) |
ISO Date GMT |
Entero largo |
9 |
2010-09-13T16:11:53Z |
System date abbreviated |
Entero largo |
2 |
dom. 29 de 2006 |
System date long |
Entero largo |
3 |
domingo 29 diciembre 2006 |
System date short |
Entero largo |
1 |
|
Nota: los formatos pueden variar dependiendo de la configuración del sistema.
Estos son algunos ejemplos de formatos simples (asumiendo que la fecha actual es 29/12/2009):
$vsResult:=String(Current date)
$vsResult:=String(Current date;Internal date long)
$vsResult:=String(Current date;ISO Date)
Notas para los formatos combinados fecha/hora:
- El formato ISO Date corresponde a la norma ISO8601. Este formato contiene una fecha y una hora. Por ejemplo, la fecha del 31 de mayo de 2006 a la 1:20 p.m. se escribe 2006-05-31T13:20:00. Si no pasa el parámetro horaComb, la parte hora se llena con 0 (ver ejemplo). Este formato expresa la fecha y hora local.
$mifecha:=String(Current date;ISO Date)
$mifecha:=String(Current date;ISO Date;Current time)
- El formato ISO Date GMT es similar al formato ISO Date, excepto que expresa la fecha y la hora con respecto a la zona del huso horario (hora GMT).
$mydate:=String(Current date;ISO Date GMT;Current time)
Note que el caracter "Z" al final indica el formato GMT.
Si solo pasa una fecha, el comando devuelve la fecha a la media noche (hora local) expresada en hora GMT lo cual puede causar que la fecha se mueva hacia adelante o hacia atrás dependiendo de la zona horaria local:
$mifecha:=String(Current date;ISO Date GMT)
- El formato Date RFC 1123 permite formatear un conjunto fecha/hora siguiendo la norma definida por los RFC 822 y 1123. Este formato es necesario por ejemplo para fijar la fecha de vencimiento de las cookies en un encabezado HTTP.
$mifecha:=String(Current date;Date RFC 1123;Current time)
La hora expresada tiene en cuenta la hora del huso horario (zona GMT). Si pasa una fecha, el comando devuelve la fecha a la media noche (hora loca) expresada en hora GMT lo que puede hacer que la fecha se mueva hacia adelante o hacia atrás dependiendo de la zona horaria local:
$mifecha:=String(Current date;Date RFC 1123)
Expresiones de tipo Hora Si expresion es de tipo Hora, la cadena se devuelve utilizando el formato por defecto HH:MM:SS. Puede pasar en el parámetro formato una de las siguientes constantes del tema "Time Display Formats"):
Constante |
Tipo |
Valor |
Comentario |
Blank if null time |
Entero largo |
100 |
"" en lugar de 0 |
HH MM |
Entero largo |
2 |
|
HH MM AM PM |
Entero largo |
5 |
|
HH MM SS |
Entero largo |
1 |
|
Hour min |
Entero largo |
4 |
1 hora 2 minutos |
Hour min sec |
Entero largo |
3 |
1 hora 2 minutos 3 segundos |
ISO time |
Entero largo |
8 |
|
Min sec |
Entero largo |
7 |
62 minutos 3 segundos |
MM SS |
Entero largo |
6 |
|
System time long |
Entero largo |
11 |
1:02:03 AM HNEC (Mac únicamente) |
System time long abbreviated |
Entero largo |
10 |
1•02•03 AM (Mac únicamente) |
System time short |
Entero largo |
9 |
|
Notas:
- El formato ISO Date Time corresponde a la norma ISO8601. Este formato contiene una fecha y una hora. Por ejemplo, la fecha del 31 de mayo de 2006 a la 1:20 p.m. se escribe 2006-05-31T13:20:00. Esto se utiliza para los procesos XML y con servicios Web. 4D no permite almacenar una fecha y hora en un solo campo. Sin embargo, es posible administrar las fechas en este formato utilizando el comando String.
- La constante Blank if null debe añadirse al formato; indica que en caso de un valor nulo 4D debe devolver una cadena vacía en lugar de ceros.
Estos ejemplos asumen que la hora actual 5:30 PM y 45 segundos:
$vsResult:=String(Current time)
$vsResult:=String(Current time;Hour Min Sec)
Expresiones de tipo cadena
Si expresion es de tipo Alfa o Texto, el comando devuelve el mismo valor que se pasa en el parámetro. Esto puede ser útil particularmente en programación genérica utilizando punteros.
En este caso, si se pasa el parámetro formato se ignora.
Expresiones de tipo Booleano
Si expresion es de tipo Booleano, el comando devuelve la cadena “True” o “False” en el lenguaje de la aplicación (por ejemplo, “Vrai” o “Faux” en una versión francesa de 4D).
En este caso si se pasa el parámetro formato, se ignora.