【发布时间】:2016-06-25 03:06:48
【问题描述】:
我需要获取当前时间的日期,格式如下“yyyy-MM-dd'T'HH:mm:ss”
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
我知道如何使用 SimpleDateFormat 格式化日期。最后我得到一个字符串。但我需要获取格式化的日期,而不是字符串,据我所知,我无法将字符串转换回日期,可以吗?
如果我只返回日期,它是一个日期,但格式不正确:
Timestamp ts = new Timestamp(new Date().getTime());
编辑: 不幸的是,我需要将结果作为日期,而不是字符串,所以我不能使用 sdf.format(New Date().getTime()),因为这会返回一个字符串。 另外,我需要返回的日期是当前时间的日期,而不是来自静态字符串。我希望澄清
【问题讨论】:
-
这个问题没有真正的意义:
Date只是一个瞬间,它没有格式。 -
new Date()已经是Date,而不是String。 -
您通过
new Date()获取当前日期。正如我之前已经评论过的,Date对象不携带格式。只有当您将Date转换为String时,格式才会发挥作用。 -
仅供参考,
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat等麻烦的旧日期时间类现在已被 java.time 类所取代。许多 java.time 功能在ThreeTen-Backport 项目中被反向移植到Java 6 和Java 7。在ThreeTenABP 项目中进一步适用于早期的Android。见How to use ThreeTenABP…。