3

サブタイトル (.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

4 に答える 4

5

あなたが扱っているのはデートではありません!Dateクラスを使用して処理しないでください。日付には、気にする必要のない奇妙な余分なルールがあり、簡単につまずいてしまう可能性があります (うるう年、うるう秒、タイム ゾーンを考えてみてください)。

あなたはどちらかすべきです

  • a を使用しlongてミリ秒を保持し、自分で計算を処理します (それほど難しくなく、カレンダーを実装していません)または
  • Joda Time のような既存の期間クラスを使用します。
于 2013-05-27T17:10:03.930 に答える
3

Java で日付の一部 (時間、分など) にアクセスするための推奨される方法は、 を使用するようになりました。 javadocsCalendar.get(Calendar.MILISECONDS)を参照してください。あなたのコードの場合、次のようになります。

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

PS javadocs Date.getHours()Date.getSeconds()などのメソッドに関しては、とにかく現在非推奨であることに注意してください。それらを使用しないでください:)。

于 2013-05-27T17:03:59.223 に答える
1

ミリ秒単位で値を取得するには、いつでも Date.getTime() を使用できます。長い形式で値を返します

于 2015-01-07T12:06:18.023 に答える