我需要将一些时间戳转换为OffsetDateTime
java。例如,我有以下时间:
2020-07-31 13:15:00.000000000 -03:00
我应该用它SimpleDateFormat
来格式化这个或其他一些更简单的助手吗?
我需要将一些时间戳转换为OffsetDateTime
java。例如,我有以下时间:
2020-07-31 13:15:00.000000000 -03:00
我应该用它SimpleDateFormat
来格式化这个或其他一些更简单的助手吗?
您需要使用DateTimeFormatter
(现代日期时间类的解析和格式化 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
获取更多详细信息。您还可以查看Trail: Date Time以了解有关现代日期时间 API 的更多信息。
注意: java.util
日期时间类已经过时且容易出错,它们的格式化 API 也是如此,SimpleDateFormat
. 您应该完全停止使用它们。此外,OffsetDateTime
它是现代日期时间 API 的一部分,SimpleDateFormat
不适合它。
如果您正在为您的 Android 项目执行此操作,并且您的 Android API 级别仍然不符合 Java-8,请通过 desugaring和How to use ThreeTenABP in Android Project检查Java 8+ APIs available。