java - 将 Java Date 从一种格式转换为另一种格式而不将其转换为字符串

标签 java datetime java-8 simpledateformat date

我正在尝试获取当前系统日期并将其格式化为 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代表一个时间点。仅此而已,仅此而已。它包含任何有关时区的信息。

Wed Jun 06 12:38:15 BST 2018是一样的Date (即时)为 Wed Jun 06 11:38:15 GMT 2018 , 只是在不同的时区。就像“人类”和“智人”这两个词。它们指的是同一个物种,只是“格式”不同而已。

因此您不需要以任何方式更改日期。你只需要以不同的方式格式化它。这就是格式化程序返回 String 的原因秒。只有String s 可以表示日期的一种特定格式

关于java - 将 Java Date 从一种格式转换为另一种格式而不将其转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50719313/

相关文章:

python - SqlAlchemy mysql 毫秒或微秒精度

linux - Alpine Linux 镜像上的 maven 和 jdk8

java - 我的 Java 项目的 gradle 构建出错

java - 无法使用 Apache Commons Mail 发送邮件

java - 由 : java. lang.ClassNotFoundException : oracle. jdbc.OracleDriver 引起

java - BigDecimal 添加错误值

javascript - 在javascript中限制正则表达式中的日期和月份

python - 混合 pandas、datetime 和 numpy timedelta 时出现不稳定行为(bug?)

java - 在 Java 8 中使用 Streams 代替 for 循环

spring - Google AppEngine 标准本地服务器 (Java8) + Spring Boot + WebFlux 没有看到我的@RestController