如何在Java中的日期对象中存储和检索毫秒?

时间:2013-05-27 17:00:28

标签: java date

我正在制作一个读取字幕(.srt)文件的基本Java程序,我想将每次存储为Date对象。我真的只需要跟踪小时,分钟,秒和毫秒(到3位数)。我想我可以使用它存储它:

String start = "00:01:01,604";
DateFormat sdf = new SimpleDateFormat("hh:mm:ss,SSS");
Date startDate = sdf.parse(start);

对于检索,我可以这样做:

return String.format("\nStart: %d:%d:%dText: %s\n", startDate.getHours(),startDate.getMinutes(), startDate.getSeconds(), text);

我正在寻找与getMilliseconds类似的东西(如果它存在的话)。非常感谢你!

4 个答案:

答案 0 :(得分:5)

您正在处理的不是约会!不要使用Date类来处理它!日期有一些你不关心的奇怪的额外规则,这可能很容易让你失望(想想闰年,闰秒和时区)。

你应该

  • 使用long来保持毫秒并自行处理计算(这不是很难,你没有实现日历)
  • 使用现有的持续时间类,例如the one from Joda Time

答案 1 :(得分:3)

在Java中访问部分日期(小时,分钟等)的推荐方法现在使用Calendar.get(Calendar.MILISECONDS),请参阅javadocs。如果是您的代码,它将如下所示:

Date startDate = sdf.parse(start);
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
int milliseconds = calendar.get(Calendar.MILISECONDS);

P.S。请注意,对于javadocs Date.getHours()Date.getSeconds()等方法,目前仍被弃用。不要使用它们:)。

答案 2 :(得分:1)

只需致电date.getTime()并获得毫秒数。

答案 3 :(得分:1)

您始终可以使用Date.getTime()来获取以毫秒为单位的值。它将以长格式返回值