Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Simpledateformat - Fatal编程技术网

在Java中将毫秒转换为日期

在Java中将毫秒转换为日期,java,date,simpledateformat,Java,Date,Simpledateformat,如何将毫秒转换为DD-mm-yyy这样的日期?我的数据库中有一列显示了公共假日日期,类型为date。在我的Entity和DTO类中,列的类型为Date。当我尝试从数据库检索表时,日期以毫秒为单位,如下所示: { "date" : 1577916000000, "id" :1, "description" : New Years Eve } 看来你把日期当作时间戳了。您必须将其格式化为字符串,如下所示 Date date=new Date(yourDateWithMs); D

如何将毫秒转换为DD-mm-yyy这样的日期?我的数据库中有一列显示了公共假日日期,类型为date。在我的Entity和DTO类中,列的类型为Date。当我尝试从数据库检索表时,日期以毫秒为单位,如下所示:

 {
   "date" : 1577916000000,
   "id" :1,
   "description" : New Years Eve
}

看来你把日期当作时间戳了。您必须将其格式化为字符串,如下所示

Date date=new Date(yourDateWithMs);
DateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");  
String strDate = dateFormat.format(date); 
这个
Date
是“java.util.Date”,并且
yourDateWithMs
可以给出尽可能长的时间

DateFormat
用于格式化结果字符串。

请尝试以下操作:

double s=1577916000000.0/1000;
        DateFormat df = new SimpleDateFormat("dd MMM yyyy ");
        String a=df.format(s);
你可以在这里阅读更多关于模式的内容


注意:尽量避免使用java.util包中过时的日期和SimpleDataFormat。它们被java.time包取代了

不要使用
Date
SimpleDateFormat
,它们已经过时了。使用
java.time
包中的类。然后您可以使用
atOffset
atZone
将其分别转换为
OffsetDateTime
zoneDateTime
。要格式化,请使用
DateTimeFormatter
类创建格式。查看更多详细信息。错误。这给了我
java.lang.IllegalArgumentException
。另外,请不要教年轻人使用早已过时且臭名昭著的
SimpleDateFormat
class。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其
DateTimeFormatter
@OleV.V中有了更好的功能。谢谢你的更新。同时,即使知道我的答案已经过时,我也很好奇为什么你会得到
java.lang.IllegalArgumentException
。部分原因是我没有正确阅读你的答案。我的Eclipse将
yourDateWithMs
变量创建为
字符串
,并将其初始化为
“15779160000”
。有一个已弃用的
日期(字符串)
构造函数,但它不接受此字符串。相反,当我用ms=15779160000L声明长YourDate时,我得到一个
标准日期
02-30-2020
。第30个月?也不正确。我认为这是错误的。它给了我1970年1月19日的消息,这可能是不正确的。另外,请不要教年轻人使用早已过时且臭名昭著的
SimpleDateFormat
class。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其
DateTimeFormatter
中有了更好的功能。
Instant
            .ofEpochMilli(1577916000000L)
            .atZone(ZoneId.systemDefault())
            .format(DateTimeFormatter.ofPattern("dd-MM-yyyy"))