在Millis中格式化Java日期和时间

时间:2012-09-22 12:19:58

标签: java datetime jodatime date-format

Date格式化Java TimeSystem.currentTimeInMillis()的简洁现代方式是什么,以便格式化如下:

  • DateYYYY-MM-DD
  • 对于TimeHH-MM-SS-mmmm,其中HH为2位数小时,MM为2位数分钟,SS为2数字秒,mmm是3位数毫秒

想要获取当前时刻(现在)的格式化日期/时间。类似的东西:

long current = System.currentTimeInMillis();
String formattedDate = getFormattedDateFromCurrent(current);
String formattedTime = getFormattedTimeFromCurrent(current);

不知道原始Java是否可以执行此操作,或者是否必须切换到joda-time之类的内容。提前谢谢!

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以将long值传递给Date构造函数,它会给你日期。

然后,您可以格式化此日期以获得所需的格式。

转换为日期的代码 -

long tmp = 1018021774496l;  
Date d = new Date(tmp);  
System.out.println(d); 

看看here。它是谷歌的第一个结果;)

答案 2 :(得分:0)

SimpleDateFormat是在Java中格式化日期/时间的常用工具。您只需指定要表示日期/时间的模式。

Date now = new Date();
// or you can use
// long millis = System.currentTimeInMillis();
// Date now = new Date(millis);

String datePattern = "yyyy-mm-dd HH-MM-SS";
SimpleDateFormat formatter = new SimpleDateFormat(datePattern);
String formattedDate = formatter.format(now);

答案 3 :(得分:0)

TL;博士

casperjs caspers-read-iframes.js
Here we come: http://pjs.lytrax.net/node/1/

We are here: http://pjs.lytrax.net/node/1/iframe2.html
http://pjs.lytrax.net/node/1/link1/from/iframe2
http://pjs.lytrax.net/node/1/link2/from/iframe2
http://pjs.lytrax.net/node/1/link3/from/iframe2

Done!

http://pjs.lytrax.net/node/1/link1/from/iframe2
http://pjs.lytrax.net/node/1/link2/from/iframe2
http://pjs.lytrax.net/node/1/link3/from/iframe2
  

2016年1月23日

...和...

OffsetDateTime.now( ZoneOffset.UTC ).toLocalDate().toString()
  

12:34:56.789

使用java.time

“干净,现代的方式”将使用java.time类。

无需致电OffsetDateTime.now( ZoneOffset.UTC ).toLocalTime().toString() 。 java.time类可以捕获当前时刻。

如果您想要UTC中的当前时刻,请使用System.currentTimeInMillis()

Instant

要进行格式化,请将其转换为更灵活的Instant instant = Instant.now();

OffsetDateTime

要生成字符串,您可以定义OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ); 对象。但在您的情况下,所需的输出恰好符合java.time类中默认使用的标准ISO 8601格式。

因此,对于仅限日期的部分,请使用DateTimeFormatter。对于时间部分,LocalDate。调用他们的LocalTime方法。

toString

分辨率

请注意,当java.time类解析为nanoseconds时,捕获Java 8中的当前时刻仅限于milliseconds。在Java 9中,Clock的新实现提供了捕获当前时刻(以纳秒为单位)(或者最好是您的计算机时钟硬件可以提供的)。

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore