java - 如何将 ZonedDateTime 格式化为字符串?

标签 java string java-time zoneddatetime

我想将 ZonedDateTime 转换为 ("dd/MM/yyyy - hh:mm") 格式的 String .我知道这在 Joda-Time 其他类型中是可能的,只需使用他们的 toString("dd/MM/yyyy - hh:mm")....但这不适用于 ZonedDateTime.toString().

如何将 ZonedDateTime 格式化为 String


编辑:

我尝试在另一个时区打印时间,结果似乎总是一样:

ZonedDateTime date = ZonedDateTime.now();
ZoneId la = ZoneId.of("America/Los_Angeles");
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la);

// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
// same result as the previous one
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date2));

而且我和洛杉矶不在同一个时区。


编辑 2:

找到如何更改时区:

// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);

最佳答案

您可以使用 java.time.format.DateTimeFormatter。 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

这里有一个例子

ZonedDateTime date = ZonedDateTime.now();

System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));

关于java - 如何将 ZonedDateTime 格式化为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42425393/

相关文章:

c# - 如何分割特定于文化的字符串

python - 在 Python 中将 Linux 命令作为原始字符串

parsing - 使用 java 8 解析 LocalDateTime 的问题

java - 为什么 DateTimeFormatter 没有格式化我的字符串?

java - 获取上传进度

java - 如何在 ActionListener 之外使变量的值成为全局变量

python - 如何检查列表中的所有单词是否都是python中的大写

java DateTimeFormatterBuilder 在测试时失败

java - 有没有办法将 Kotlin 的 String::startsWith 传递给采用 Java 的 String::startsWith 的方法?

java-serverside for(;;) 当 readline() 为 null 时循环停止