我正在制作一个读取字幕(.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类似的东西(如果它存在的话)。非常感谢你!
答案 0 :(得分:5)
您正在处理的不是约会!不要使用Date
类来处理它!日期有一些你不关心的奇怪的额外规则,这可能很容易让你失望(想想闰年,闰秒和时区)。
你应该
long
来保持毫秒并自行处理计算(这不是很难,你没有实现日历)或 答案 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()来获取以毫秒为单位的值。它将以长格式返回值