如何打印Date对象的毫秒(最后一秒和下一秒之间的时间)?

时间:2013-05-23 16:20:19

标签: android date datetime time

我正在构建一个基本的日志记录实用程序类,并希望将日期和时间记录到创建日志条目的毫秒。我目前正在使用:

Date d = new Date();
String dateToOutput = DateFormat.format( "MM-dd hh:mm:ss", d )

给了我'05 -23 09:05:47'。我希望它能给我创建日志条目的毫秒数,并且看起来DateFormat类不支持毫秒检索。

与格式"MM-dd hh:mm:ss:zzz"一样'05-23 09:05:47.447'

是否可以使用DateFormat类(或类似DateFormat的类)执行此操作?我认识到可以创建另一个日期,删除此日期的毫秒部分,然后减去两个并打印差异,但这只是愚蠢的。 (:

2 个答案:

答案 0 :(得分:1)

试试这个

Date d = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("MM-dd hh:mm:ss SSS");
String dateToOutput = sdf.format(d);

答案 1 :(得分:0)

虽然我觉得愚蠢的是DateFormat类不允许简单的格式化毫秒输出,但我意识到从时间戳获取毫秒实际上非常容易。每个日期对象都表示自1970年1月1日00:00以来的时间戳(以毫秒为单位),因此模数1000的时间戳给出了毫秒数。

我做了

Date d = new Date();
String dateToOutput = DateFormat.format( "MM-dd hh:mm:ss", d );
dateToOutput += "." + d.getTime() % 1000;

虽然不理想,但效果很好并且给了我'05-23 09:05:47.447'