0

こんにちは、Java の Date クラスまたは Joda Time クラスを使用して今年の特定の日を取得する方法があるかどうか疑問に思っていました。たとえば、日付が必要な場合12/31/2013。これが問題である理由は、誰かの誕生日の文字列表現を与えており"12311991" "MMddyyyy"、これを日付に変換したいからmonth 12 day 31 and year 2013です。

誰でもこれについて私を助けることができますか?

私は DateMidnight Joda 時間クラスを使用しており、Simple Formatter を使用して文字列を日付に解析していますが、年を特定の年に設定する方法があるかどうか疑問に思っていました。

4

5 に答える 5

3

JodaTimeを使用して実装する場合は、次のように実行できます。DateTimeFormatterを使用してフォーマットを 取得DateTimeし、DateTime#withYear(int)メソッドで年を変更できます。

String dob = "12311991";
DateTimeFormatter fmt = DateTimeFormat.forPattern("MMddyyyy");
DateTime dt = fmt.parseDateTime(dob).withYear(2013);
System.out.println(dt);
于 2013-09-06T01:41:17.503 に答える
1

カレンダーを使ってみる

set(int year,
   int month,
   int date)

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#set(int , int, int)

于 2013-09-06T01:40:21.470 に答える
0

java.time

他の答えは時代遅れです。古い日時クラスと Joda-Time は、Java 8 以降に組み込まれたjava.timeフレームワークに取って代わられました。

このLocalDateクラスは、時刻とタイム ゾーンのない日付のみの値を真に表します (元の日時クラスにはありません)。

String input = "12311991";
DateTimeFormatter formatter = DateTimeFormatter.forPattern("MMddyyyy");
LocalDate localDate = LocalDate.parse( input , formatter ); // 1991-12-31
LocalDate differentYear = localDate.withYear( 2013 );  // 2013-12-31
于 2016-06-29T04:46:58.297 に答える