Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,日期显示为快速毫秒,格式不正确_Java - Fatal编程技术网

在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-

我在java类中有以下声明

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 ) ;