将 sql 时间戳转换为 java OffsetDateTime
Convert a sql timestamp to java OffsetDateTime
我需要在 java 中将一些时间戳转换为 OffsetDateTime
。比如我有以下时间:
2020-07-31 13:15:00.000000000 -03:00
我应该使用 SimpleDateFormat
来格式化这个还是其他一些更直接的助手?
您需要使用DateTimeFormatter
(modern date-time classes的解析和格式化API),如下所示:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
OffsetDateTime odt = OffsetDateTime.parse("2020-07-31 13:15:00.000000000 -03:00",
DateTimeFormatter.ofPattern("u-M-d H:m:s.n ZZZZZ"));
System.out.println(odt);
}
}
输出:
2020-07-31T13:15-03:00
查看 DateTimeFormatter
for more details on it. You can also check Trail: Date Time 的文档以了解有关现代 date-time API 的更多信息。
注意: java.util
date-time 类 已过时,error-prone 格式也已过时 API , SimpleDateFormat
。你应该完全停止使用它们。此外,OffsetDateTime
是现代 date-time API 的一部分,而 SimpleDateFormat
不适合它。
如果您正在为您的 Android 项目执行此操作,并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring and .
我需要在 java 中将一些时间戳转换为 OffsetDateTime
。比如我有以下时间:
2020-07-31 13:15:00.000000000 -03:00
我应该使用 SimpleDateFormat
来格式化这个还是其他一些更直接的助手?
您需要使用DateTimeFormatter
(modern date-time classes的解析和格式化API),如下所示:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
OffsetDateTime odt = OffsetDateTime.parse("2020-07-31 13:15:00.000000000 -03:00",
DateTimeFormatter.ofPattern("u-M-d H:m:s.n ZZZZZ"));
System.out.println(odt);
}
}
输出:
2020-07-31T13:15-03:00
查看 DateTimeFormatter
for more details on it. You can also check Trail: Date Time 的文档以了解有关现代 date-time API 的更多信息。
注意: java.util
date-time 类 已过时,error-prone 格式也已过时 API , SimpleDateFormat
。你应该完全停止使用它们。此外,OffsetDateTime
是现代 date-time API 的一部分,而 SimpleDateFormat
不适合它。
如果您正在为您的 Android 项目执行此操作,并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring and