Java 如何将getTime()转换为';YYYY-MM-DD HH24:MI:SS';
我的应用程序中有以下代码Java 如何将getTime()转换为';YYYY-MM-DD HH24:MI:SS';,java,datetime-format,seconds,Java,Datetime Format,Seconds,我的应用程序中有以下代码 System.out.println(rec.getDateTrami().getTime()); 我需要转换以下格式(我假设它们是秒) 对于格式YYYY-MM-DD HH24:MI:SS,任何人都可以帮助我?您可以使用SimpleDataFormat new SimpleDateFormat("YYYY-MM-DD HH24:MI:SS").format(date) 您可以使用SimpleDataFormat 例如: SimpleDateFormat format
System.out.println(rec.getDateTrami().getTime());
我需要转换以下格式(我假设它们是秒)
对于格式
YYYY-MM-DD HH24:MI:SS
,任何人都可以帮助我?您可以使用SimpleDataFormat
new SimpleDateFormat("YYYY-MM-DD HH24:MI:SS").format(date)
您可以使用
SimpleDataFormat
例如:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date();
date.setTime(rec.getDateTrami().getTime());
System.out.println(format.format(date));
文件:
,
使用
java.time
最好更改getDateTrami()
以从java.time
返回OffsetDateTime
或ZonedDateTime
java.time
是现代的java日期和时间API。它也被称为JSR-310。无论返回上述两种类型中的哪一种,代码都是相同的:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
System.out.println(rec.getDateTrami().format(formatter));
这会打印一个日期和时间,如
2017-12-14 16:52:20
java.time
通常比过时的Date
类及其朋友更适合使用
如果无法更改退货类型
我假设getDateTrami()
返回java.util.Date
。由于Date
类早已过时,首先要做的是将其转换为java.time.Instant
。从那里您可以执行进一步的操作:
Date oldfashionedDateObject = rec.getDateTrami();
ZonedDateTime dateTime = oldfashionedDateObject.toInstant()
.atZone(ZoneId.of("Atlantic/Cape_Verde"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
System.out.println(dateTime.format(formatter));
当然,结果与上述类似。我故意明确表示我要在哪个时区解释时间点。如果不是大西洋/佛得角,请替换您自己的
格式化自纪元起的秒数
int seconds = 29_382_000;
ZonedDateTime dateTime = Instant.ofEpochSecond(seconds)
.atZone(ZoneId.of("Atlantic/Cape_Verde"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
System.out.println(dateTime.format(formatter));
这个片段打印
1970-12-06 23:40:00
1970年12月的一个日期。如果这是不正确的,那是因为29382000并不表示自1970年1月1日午夜UTC的纪元(也称为Unix纪元)以来的秒数。到目前为止,这是测量秒的最常见时间。如果你的秒数是从某个固定的时间点开始测量的,我猜不出是哪个,而你必须要做的就是找出答案。再次确定要指定的时区。使用
SimpleDataFormat
是否返回Date
对象?问是因为日期
课程早已过时,而今天我们的课程好多了。如果您可以更改getDateTrami()
以返回一个现代类的实例,您应该更愿意这样做。为了您自己(以及我们的),请在询问之前搜索和研究。如何在Java中格式化日期时间已经在很多地方讨论过了,包括堆栈溢出和其他地方。搜索时只有一个警告:避免使用提及SimpleDateFormat
的解决方案。如今,这个类早已过时,并且出了名的麻烦。@CodeMatrixSimpleDataFormat
正是要避免的类。如果您使用的是Java8,则更是如此,正如您的链接所示。不管Java版本如何,这个类都很麻烦。jc1992,在我看来,你的数字并不像秒,你确定吗?你知道他们应该在几年内大致对应哪个日期时间吗?请不要教年轻人使用过时且臭名昭著的SimpleDateFormat
类。今天我们的生活好多了。即使您需要先从旧式的Date
对象转换,也不行(您应该避免使用SimpleDateFormat
)。
1970-12-06 23:40:00