0

各反復で yyyymmddhhmmss.mmm の形式で任意の日付のミリ秒を増やしたいと思います。ここで mmm はミリ秒を表します。そして、この操作を Java 1.5 で実行したいと考えています。

例: 20120823151034.567 は 20120823151034.568 にインクリメントする必要があります。

4

6 に答える 6

4

long増分を簡単にするミリ秒を使用できます。

final String input = "20120823151034.567";
final DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss.SSS");

Date d = df.parse(input);
d.setTime(d.getTime()+1);
System.out.println(df.format(d));

Calendar は非常に遅いため、使用しません。

于 2012-08-23T13:13:50.287 に答える
3

この操作に使用する最適なクラスはCalendar. 希望の日付に設定してから使用します

myCalendar.add(Calendar.MILLISECOND, 1);

1ミリ秒進めます。DateFormat文字列表現を生成するために使用します。

于 2012-08-23T13:07:28.300 に答える
3

オブジェクトに解析Stringし、使用して日付を変更できます。その後、オブジェクトを に戻すことができます。オブジェクトを解析して変換するには、クラスを使用できます。DategetTime()setTime(long l)DateStringStringDateStringSimpleDateFormat

于 2012-08-23T13:03:47.427 に答える
1

これにより、必要なものが得られます。日/月/年の境界を越えて機能し、夏時間の開始と終了を処理します。

  final String input = "20120823151034.567";
  final DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss.SSS");
  final Calendar c = Calendar.getInstance();
  c.setTime(df.parse(input));
  c.add(Calendar.MILLISECOND, 1);
  System.out.println(df.format(c.getTime()));
于 2012-08-23T13:08:02.697 に答える
1

これには、カレンダークラスと日付クラスを使用できます....

日付クラス:

final String dateStr = "20120823151034.567";
final DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss.SSS");

Date date = format.parse(input);
date.setTime(date.getTime()+1);
System.out.println(format.format(date));

カレンダー クラス:

final String dateStr = "20120823151034.567";
final DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss.SSS");

Calendar c = Calendar.getInstance();
c.setTime(format.parse(dateStr ));
c.add(Calendar.MILLISECOND,1);
System.out.println(format.format(c.getTime()));

どちらの場合も、format.parse() は ParseException をスローする可能性があるため、これをキャッチして処理する必要があります。

于 2012-08-23T13:47:26.890 に答える
0

Calendar を使用しない代替手段 (ただし、Calendar は問題ありません)

 final String input = "20120814120000.111";
 final DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss.SSS");

 Date date = new format.parse(input);
 long time = date.getTime();

 Date incrementedDate = new Date(time + 1);
 System.out.println(format.format(date));
于 2012-08-23T13:12:11.340 に答える