在java中,日期显示为快速毫秒,格式不正确
我在java类中有以下声明在java中,日期显示为快速毫秒,格式不正确,java,Java,我在java类中有以下声明 abc.setCreated(abcEntity.getCreatedDate()); 如果我深入abc实体内部的通话 public Date getCreatedDate() { return new Date(createdDate.getTime()); } 但结果中的日期 abc.setCreated(abcEntity.getCreatedDate()); 如请求中所示“已创建”:1570464000,我希望它以DD-MM-
abc.setCreated(abcEntity.getCreatedDate());
如果我深入abc实体内部的通话
public Date getCreatedDate() {
return new Date(createdDate.getTime());
}
但结果中的日期
abc.setCreated(abcEntity.getCreatedDate());
如请求中所示“已创建”:1570464000,我希望它以DD-MM-YYYY格式显示为日期。请建议如何实现这一点您可以使用java中的
SimpleDataFormat
以该格式获取日期。传递日期
对象而不是时间,如下面所示
例:-
tl;博士
07-10-2019
避免遗留类
您正在使用可怕的日期时间类,这些类在几年前被现代java.time类所取代
java.time
将自UTC 1970年第一个时刻的历元参考以来的整秒计数解析为瞬间
您的示例值正确吗?也许你的意思是157046400
long seconds = 1_570_406_400L ;
Instant instant = Instant.ofEpochMilli( seconds ) ;
瞬间
表示UTC中的一个时刻。生成以标准ISO 8601格式表示此值的字符串
String output = instant.toString() ;
instant.toString():2019-10-07T00:00:00Z
要调整到另一个时区,请应用ZoneId
以获取zoneDateTime
ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
zdt.toString():2019-10-06T20:00-04:00[美国/蒙特利尔]
注意日期是第6天而不是第7天。虽然此时UTC开始了新的一天,但在加拿大仍然是“昨天”。对于任何给定的时刻,全球各地的日期都因时区而异
生成本地化格式的字符串
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" );
String output = zdt.format( f ) ;
产出:2019年10月6日
如果要报告UTC中的日期而不是时区,请使用OffsetDateTime
class。使用常量ZoneOffset.UTC
指定UTC
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" );
String output = odt.format( f ) ;
输出日期:07-10-2019
看到那些代码了吗
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 该项目现已启动,建议迁移到类 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(您是指
还是1570464000
),请检查以下内容:157046400
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ); String output = zdt.format( f ) ;
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ; DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ); String output = odt.format( f ) ;