Skip to content

Commit b3f491b

Browse files
committed
fix: thread-safe date formatter
1 parent d2073c1 commit b3f491b

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/MagneticFields.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
import java.io.FileNotFoundException;
88
import java.io.IOException;
99
import java.io.PrintStream;
10-
import java.text.SimpleDateFormat;
10+
import java.time.format.DateTimeFormatter;
11+
import java.time.ZoneId;
12+
import java.time.Instant;
1113
import java.util.ArrayList;
1214
import java.util.StringTokenizer;
13-
import java.util.TimeZone;
1415
import java.util.logging.Level;
1516
import java.util.logging.Logger;
1617

@@ -40,14 +41,9 @@ public class MagneticFields {
4041
/**
4142
* A formatter to get the time in down to seconds (no day info).
4243
*/
43-
private static SimpleDateFormat formatterlong;
44-
45-
static {
46-
TimeZone tz = TimeZone.getDefault();
47-
48-
formatterlong = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
49-
formatterlong.setTimeZone(tz);
50-
}
44+
private static final DateTimeFormatter formatterlong = DateTimeFormatter
45+
.ofPattern("yyyy/MM/dd HH:mm:ss")
46+
.withZone(ZoneId.systemDefault());
5147

5248
// version of mag field package
5349
private static String VERSION = "1.20";
@@ -1660,7 +1656,7 @@ public String fileBaseNames() {
16601656
* @return a string representation of the current time, down to seconds.
16611657
*/
16621658
public static String dateStringLong(long longtime) {
1663-
return formatterlong.format(longtime);
1659+
return formatterlong.format(Instant.ofEpochMilli(longtime));
16641660
}
16651661

16661662
/**

0 commit comments

Comments
 (0)