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