Comment convertir un horodatage UTC en heure locale dans une formule en colonne
Salut tout le monde,
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 formule de colonne, without scripting or using Date Add?
Quelque chose comme :
Informat(:Timestamp UTC, "yyyy-mm-ddThh:mm:ss") + (4 * 3600)
Mais je ne suis pas sûr que ce soit la bonne syntaxe car elle ne produit ni résultat ni erreur d'évaluation de formule.
J'ai également essayé en me basant sur une discussion :
<'T'>
<HH24>
<::>
<MM>
<::>
<SS>
Z") + (4 * 3600)
</SS>
</MM>
</HH24>
- Aucun résultat
La formule ressemble à ceci :
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>
Je serais reconnaissant de tout conseil ou exemple sur la manière de gérer correctement les conversions UTC vers heure locale dans les formules de colonnes.
Merci!
Automatisation et scriptageAnalyse et modélisation de données de baseFusion et nettoyage des donnéesRe : Comment convertir un horodatage UTC en heure locale dans une formule de colonneEst-ce une option envisageable ?
![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 : Comment convertir un horodatage UTC en heure locale dans une formule de colonneNew 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 stocke les valeurs de date et d'heure sous forme de secondes écoulées depuis 1904. La fonction InHours renvoie 3600 * l'argument. Je suppose que vous avez des données de type caractère dans la colonne Timestamp (anciennes, dans mon exemple).
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonneJ'aurais dû ajouter ceci à titre de référence.
Puisqu'il s'agit de données brutes - modélisation ttype - continue
Format défini comme :
Format("m/d/y h:m:s")
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonneJ'aurais dû ajouter ceci à titre de référence.
Puisqu'il s'agit de données brutes - modélisation ttype - continue
Format défini comme :
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 : Comment convertir un horodatage UTC en heure locale dans une formule de colonne@mlo1 @Craige_Hales
Cela a fonctionné.
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 />
| Heure UTC |
Heure locale |
| 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 : Comment convertir un horodatage UTC en heure locale dans une formule de colonneCependant, cette formule ne fonctionne pas
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 version actuelle, avec la partie commentée du code, semble prendre plus de temps et entre dans une boucle infinie, car elle empêche mon JMP de répondre et je dois forcer l'arrêt de l'application.
Je l'ai déjà fait, mais l'horodatage local est généré sans utiliser le code ci-dessous.
:Name("Timestamp UTC") << Data Type(Character) << Modeling Type(Nominal);
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonneQuelle version de JMP utilisez-vous ? Si vous rencontrez des problèmes de vitesse avec Col Max, je vous suggère de commencer par créer une colonne séparée.
Informat(Substitute(:"Timestamp UTC"n, "+00:00", ""), "yyyy-mm-dd hh:mm:ss")
et utilisez ensuite cette colonne nouvellement créée comme variable.
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonneOui, j'avais essayé ça
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);
J'essaie ceci. Cela écrase ma colonne d'horodatage UTC et aucune valeur n'est affichée.
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonnePouvez-vous fournir un exemple du tableau que vous utilisez ? Les colonnes d’horodatage devraient suffire (n’oubliez pas de supprimer les variables et scripts du tableau).
Re : Comment convertir un horodatage UTC en heure locale dans une formule de colonne@jthi Voici une solution. J'ai trouvé qu'il était très simple de créer une colonne supplémentaire et de l'utiliser.