Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna
Hola a todos,
I have a column Timestamp UTC in JMP with values like 2025-10-31T08:30:00.
I want to create a new column Timestamp Local that converts this UTC time to local time
Is there a simple formula-based way to add 5.5 hours to my timestamp directly in a fórmula de columna, without scripting or using Date Add?
Algo como:
Informat(:Timestamp UTC, "yyyy-mm-ddThh:mm:ss") + (4 * 3600)
pero no estoy seguro de que esta sea la sintaxis correcta, ya que no produce ningún resultado ni errores de evaluación de fórmula.
También lo intenté basándome en un hilo de discusión:
<'T'>
<HH24>
<::>
<MM>
<::>
<SS>
Z") + (4 * 3600)
</SS>
</MM>
</HH24>
- Sin resultados
La fórmula es la siguiente:
Also tried Format - "yyyy-mm-ddThh:mm:ss"
col_name_list = Current Data Table() << get column names( string );
If(
!Contains(col_name_list, "Timestamp Local"),
Current Data Table() << New Column(
"Timestamp Local",
Numeric,
Continuous,
Format("m/d/y h:m:s"),
Formula(
Informat(:Name("Timestamp UTC"),
//"Format Pattern",
"yyyy-mm-ddThh:mm:ss") + (4* 3600)
)
)
);
Informat(:Timestamp UTC, "Format Pattern", "
<YYYY>
<->
<MM>
<->
</MM>
</YYYY>
Agradecería cualquier orientación o ejemplos sobre cómo manejar correctamente las conversiones de UTC a hora local dentro de las fórmulas de las columnas.
¡Gracias!
Automatización y scriptingAnálisis y modelado de datos básicosCombinación y limpieza de datosRe: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna¿Es esta una opción?
![TimeAdd_2025-11-03 13_22_07-Time Plus - JMP [2].png TimeAdd_2025-11-03 13_22_07-Time Plus - JMP [2].png](https://us.v-cdn.net/6038925/uploads/images/86259i38E814A6E03787A1/TimeAdd_2025-11-03%2013_22_07-Time%20Plus%20-%20JMP%20%5B2%5D.png)
</CODE></PRE>
<P> </P>
<PRE><CODE class=" language-jsl">New Column( "Time Plus",
Numeric,
"Continuous",
Format( "yyyy-mm-ddThh:mm:ss", 19, 0 ),
Input Format( "yyyy-mm-ddThh:mm:ss", 0 ),
Formula( :Timestamp + In Hours( 5.5 ) ),
Set Selected
)
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columnaNew Table( "Untitled",
Add Rows( 2 ),
New Column( "old", Character, "Nominal", Set Values( {"2025-10-31T08:30:00", "2025-10-31T08:30:01"} ), Set Display Width( 153 ) ),
New Column( "new",
Numeric,
"Continuous",
Format( "Monddyyyy h:m:s", 22, 0 ),
Input Format( "Monddyyyy h:m:s", 0 ),
Formula( Informat( :old, "yyyy-mm-ddThh:mm:ss" ) + In Hours( 5.5 ) )
)
)

JMP almacena los valores de fecha y hora como segundos numéricos desde 1904. La función InHours devuelve 3600 * el argumento. Asumo que la columna Timestamp contiene datos de tipo carácter (antiguos, en mi ejemplo).
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columnaDebería haber añadido esto como referencia.
Dado que esto proviene de datos sin procesar, el tipo de modelado es continuo.
Formato definido como:
Format("m/d/y h:m:s")
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columnaDebería haber añadido esto como referencia.
Dado que esto proviene de datos sin procesar, el tipo de modelado es continuo.
Formato definido como:
Format("m/d/y h:m:s")<BR /><BR />I tried the formula above, it didn't yeild any output. I will check again.
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna@mlo1 @Craige_Hales
Esto ha funcionado.
col_name_list = Current Data Table() << get column names( string );
If( !Contains( col_name_list, "Timestamp Local" ), //If the column name doesn't exist in the array col_name_list
Current Data Table() << New Column(
"Timestamp Local",
Numeric,
"Continuous",
Format( "m/d/y h:m:s", 22, 0),
//Input Format( "Monddyyyy h:m:s", 0 ),
Formula(
//In Format( :Timestamp UTC, "yyyy-mm-ddThh:mm:ss" ) + In Hours( 5.5 )
Informat( Substitute(:Timestamp UTC, "+00:00", ""), "yyyy-mm-dd hh:mm:ss" ) + In Hours(5.5)
),
//Formula( :Timestamp + In Hours( 5.5 ) ),
//Set Selected
)
);<BR /><BR />
| Hora UTC |
Hora local |
| 2025-09-14 07:51:52+00:00 |
14/09/2025 13:21:52 |
| 2025-09-14 07:56:52+00:00 |
14/09/2025 13:26:52 |
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columnaSin embargo, esta fórmula no funciona
If(!Contains(col_name_list, "Max Timestamp UTC"),
Current Data Table() << New Column(
"Max Timestamp UTC",
Numeric,
Continuous,
Format("m/d/y h:m:s", 22, 0),
Formula(
Col Maximum(
:Name("Timestamp UTC"),
/*Informat(
Substitute(:Name("Timestamp UTC"), "+00:00", ""),
"yyyy-mm-dd hh:mm:ss"
),*/
:Name("ID")
)
)
)
);
La versión tal cual, con la parte del código comentada, parece tardar más y entra en un bucle infinito, ya que provoca que mi JMP deje de responder y tengo que cerrar la aplicación.
Ya lo he hecho antes, pero la marca de tiempo local se genera sin usar el código que aparece a continuación.
:Name("Timestamp UTC") << Data Type(Character) << Modeling Type(Nominal);
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna¿Qué versión de JMP estás usando? Si tienes problemas de velocidad con Col Max, primero crearía una columna separada con
Informat(Substitute(:"Timestamp UTC"n, "+00:00", ""), "yyyy-mm-dd hh:mm:ss")
y luego utilice esa columna recién creada como variable.
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columnaSí, lo había intentado.
dt:Name( "Timestamp UTC" ) << Informat(
Substitute( :Timestamp UTC, "+00:00", "" ),
"yyyy-mm-dd hh:mm:ss"
);
dt:Name( "Timestamp UTC" ) << Data Type( Character ) << Modeling Type( Nominal );
col_name_list = Current Data Table() << get column names ( string );
If( !Contains(col_name_list, "Timestamp UTC (Numeric)"),
Current Data Table() << New Column(
"Timestamp UTC (Numeric)",
Numeric,
"Continuous",
Format("m/d/y h:m:s", 22, 0),
Formula(
Informat( Substitute(:Timestamp UTC, "+00:00", ""), "yyyy-mm-dd hh:mm:ss" )
)
)
);
dt:Name("Timestamp UTC (Numeric)") << Delete Formula;
dt:Name("Timestamp UTC") <<
Set Values(:Name("Timestamp UTC (Numeric)")) <<
Data Type(Numeric) <<
Format("m/d/y h:m:s", 22, 0);
Estoy probando esto. Está sobrescribiendo mi columna de marca de tiempo UTC y no muestra ningún valor.
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna¿Puedes proporcionar un ejemplo de la tabla que estás utilizando? Con solo las columnas de marca de tiempo debería ser suficiente (recuerda también eliminar las variables/scripts de la tabla).
Re: Cómo convertir una marca de tiempo UTC a hora local en una fórmula de columna@jthi Consulta esta solución. Me resultó muy sencillo crear una columna adicional y usarla.