Wie man einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit umwandelt
Hallo zusammen,
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 Spaltenformel, without scripting or using Date Add?
Etwa so:
Informat(:Timestamp UTC, "yyyy-mm-ddThh:mm:ss") + (4 * 3600)
Ich bin mir aber nicht sicher, ob dies die richtige Syntax ist, da weder ein Ergebnis noch ein Formelauswertungsfehler auftritt.
Ich habe es auch anhand eines Diskussionsthreads versucht:
<'T'>
<HH24>
<::>
<MM>
<::>
<SS>
Z") + (4 * 3600)
</SS>
</MM>
</HH24>
- Kein Ergebnis
Die Formel sieht folgendermaßen aus:
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>
Ich wäre dankbar für Hinweise oder Beispiele, wie man UTC-zu-Lokalzeit-Umrechnungen sauber in Spaltenformeln handhaben kann.
Danke!
Automatisierung und SkripterstellungGrundlagen der Datenanalyse und ModellierungDatenzusammenführung und -bereinigungBetreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Ist das eine Option?
![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
)
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?New 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 speichert Datums- und Zeitwerte als numerische Sekunden seit 1904. Die Funktion InHours gibt 3600 * das Argument zurück. Ich gehe davon aus, dass die Spalte „Timestamp“ Zeichendaten enthält (in meinem Beispiel „old“).
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Das hätte ich zur Information hinzufügen sollen.
Da es sich um Rohdaten handelt – Modellierungstyp: kontinuierlich
Format definiert als:
Format("m/d/y h:m:s")
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Das hätte ich zur Information hinzufügen sollen.
Da es sich um Rohdaten handelt – Modellierungstyp: kontinuierlich
Format definiert als:
Format("m/d/y h:m:s")<BR /><BR />I tried the formula above, it didn't yeild any output. I will check again.
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?@mlo1 @Craige_Hales
Das hat funktioniert.
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 />
| TIme UTC |
Ortszeit |
| 2025-09-14 07:51:52+00:00 |
14.09.2025 13:21:52 Uhr |
| 2025-09-14 07:56:52+00:00 |
14.09.2025 13:26:52 Uhr |
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Diese Formel funktioniert jedoch nicht.
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")
)
)
)
);
Die aktuelle Version, bei der der auskommentierte Teil des Codes länger braucht, gerät in eine Endlosschleife, da mein JMP nicht reagiert und ich die Anwendung beenden muss.
Ich habe das schon einmal gemacht, aber der lokale Zeitstempel wird auch ohne den unten stehenden Code generiert.
:Name("Timestamp UTC") << Data Type(Character) << Modeling Type(Nominal);
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Welche JMP-Version verwenden Sie? Falls Sie Probleme mit der Geschwindigkeit von Col Max haben, würde ich zunächst eine separate Spalte erstellen.
Informat(Substitute(:"Timestamp UTC"n, "+00:00", ""), "yyyy-mm-dd hh:mm:ss")
und verwenden Sie dann diese neu erstellte Spalte als by-Variable.
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Ja, das hatte ich versucht.
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);
Ich versuche das gerade. Es überschreibt meine UTC-Zeitstempelspalte und enthält keine Werte.
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?Können Sie ein Beispiel der verwendeten Tabelle bereitstellen? Die Spalten mit den Zeitstempeln sollten ausreichen (denken Sie auch daran, Tabellenvariablen/Skripte zu löschen).
Betreff: Wie wandle ich einen UTC-Zeitstempel in einer Spaltenformel in die lokale Zeit um?@jthi Schau dir diese Lösung an. Ich fand es unkompliziert, eine zusätzliche Spalte zu erstellen und diese zu verwenden.