Skip to content

Instantly share code, notes, and snippets.

@YukiYoshikawa
Last active December 16, 2015 10:18
Show Gist options
  • Save YukiYoshikawa/5418761 to your computer and use it in GitHub Desktop.
Save YukiYoshikawa/5418761 to your computer and use it in GitHub Desktop.
package trial.yy.java8.client.datetime;
import java.time.DateTimeException;
import java.time.LocalDate;
import java.time.Month;
import java.time.Period;
import java.time.format.DateTimeFormatter;
/**
* java8 java.time.LocalDateを試すためのサンプル
* User: yy
* Date: 13/04/19
* Time: 22:30
*/
public class Java8LocalDateClient {
public static void main(String[] args) {
// 現在日付
LocalDate date1 = LocalDate.now();
// 現在日付がyyyy-MM-dd 形式で出力される
System.out.println("date1 : " + date1);
// 年月日を全て数値で指定(月をそのままの数値で指定できるの良いね(ex. 12月なら12と指定))
LocalDate date2 = LocalDate.of(2013, 12, 31);
// 2013-12-31 と出力される
System.out.println("date2 : " + date2);
// Monthを用いて指定
LocalDate date3 = LocalDate.of(2013, Month.JUNE, 1);
// 2013-06-01 と出力される
System.out.println("date3 : " + date3);
// 2013-01-31を生成
LocalDate date4 = LocalDate.of(2013, 1, 31);
System.out.println("date4 : ");
// 年・月・日・曜日を個別に取り出す
System.out.println(" 年:" + date4.getYear());
System.out.println(" 月:" + date4.getMonth());
System.out.println(" 日:" + date4.getDayOfMonth());
System.out.println(" 曜日:" + date4.getDayOfWeek());
// 加減算してみる(以下例は日の加減算ですが、月、年用のメソッドもあります)
LocalDate date5 = LocalDate.of(2013, 1, 31);
System.out.println(date5 + "の1日後: " + date5.plusDays(1));
System.out.println(date5 + "の40日後: " + date5.plusDays(40));
System.out.println(date5 + "の1日前: " + date5.minusDays(1));
System.out.println(date5 + "の40日前: " + date5.minusDays(40));
LocalDate date6 = LocalDate.of(2013, 1, 1);
// 7日間を加算してみる(Durationを引数に指定するとDateTimeExceptionが発生します)
System.out.println(date6 + "の7日後: " + date6.plus(Period.ofDays(7)));
// 7日間を減算してみる(Durationを引数に指定するとDateTimeExceptionが発生します)
System.out.println(date6 + "の7日前: " + date6.minus(Period.ofDays(7)));
// 日付文字列からparseしてみる
LocalDate date7 = LocalDate.parse("2013/07/07", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
System.out.println("date7 : " + date7);
System.out.println("###");
// 存在しない2013年2月30日とか指定するとDateTimeExceptionがスローされる
// (DateTimeExceptionは実行時例外なのも今っぽい気がします)
try {
LocalDate.of(2013, Month.FEBRUARY, 30);
} catch (DateTimeException e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment