【发布时间】:2018-06-06 11:28:55
【问题描述】:
我正在尝试获取我当前的系统日期并将其格式化为 Etc/UTC,然后格式化为“dd.MM.yyyy HH:mm z”格式。问题是格式化日期后的格式化函数返回一个字符串而不是日期。这是下面的代码spinet
final Date currentDate = new Date();
final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
dateFormatter.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
String finalDateTime= dateFormatter.format(currentDate);
System.out.println(finalDateTime);
是否有任何替代解决方案允许我通过将我保留在此日期对象中来格式化日期,因为我已经研究了 java 8 之后和 java 8 之前的每个日期库,似乎我想格式化任何类型的日期或dateTime,我必须使用将给定日期转换为字符串的格式化程序。
任何替代解决方案或它是不可能的?
【问题讨论】:
-
...不,您无法获得具有特定格式的日期!
-
你到底想要什么?你想转换日期吗?为什么不在最终输出中获得您需要的信息?
-
您要更改时区吗?
-
您可以更改时区,但更改日期对我来说没有意义吗?如果您需要这样做,请创建一个新的日期实例。
-
您将 Date 与其字符串表示混淆了。就好像您要求使用始终以 2 位小数打印的双精度数 - 数字不理解小数或打印,只有格式化程序可以。
标签: java datetime java-8 simpledateformat date