Java中的日期是一个非常重要的概念,它可以用来表示特定的时间点,并且可以用来计算时间差。Java中提供了多种不同的API来处理日期和时间,其中最常用的是java.util.Date和java.time包。
java.util.Date是Java中最常用的日期API,它可以表示一个特定的时间点,并提供了一些方法来获取和设置这个时间点上的年、月、日、小时、分钟和秒。此外,它还提供了一些方法来计算两个不同的时间之间的差异。
// 获取当前时间 Date date = new Date(); System.out.println(date); // 获取当前年份 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); System.out.println(year); // 获取当前月份 int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始计数 System.out.println(month); // 打印出8 // 8代表9月 // 加1是因为月份从0开始计数 // 所以8代表9月 // 9代表10月 // 10代表11月 // 11代表12月
LocalDate
类表示没有时间或时区的日期。
当时间和时区相关时使用LocalDate。
LocalDate
类包含两个常量,MAX和MIN。
MAX和MIN分别是最大和最小支持的LocalDate。
LocalDate.MAX为+ 999999999-12-31,LocalDate.MIN为-999999999-01-01。
以下代码显示如何创建 LocalDate
对象:
import java.time.LocalDate; import java.time.Month; public class Main { public static void main(String[] args) { // Get the current local date LocalDate localDate1 = LocalDate.now(); System.out.println(localDate1); // Create a local date LocalDate localDate2 = LocalDate.of(2014, Month.JUNE, 21); System.out.println(localDate2); // 10000 days after the epoch date 1970-01-01 LocalDate localDate3 = LocalDate.ofEpochDay(10000); System.out.println(localDate3); } }
上面的代码生成以下结果。
以下代码显示如何合并Year和MonthDay以获取LocalDate。
它在未来五年创造圣诞节。
以下代码将为12月25日创建一个MonthDay,并将其合并到一个年份以获取LocalDate。
import java.time.LocalDate; import java.time.Month; import java.time.MonthDay; import java.time.Year; import java.time.format.TextStyle; import java.util.Locale; public class Main { public static void main(String[] args) { MonthDay dec25 = MonthDay.of(Month.DECEMBER, 25); Year year = Year.now(); for (int i = 1; i <= 5; i++) { LocalDate ld = year.plusYears(i).atMonthDay(dec25); int yr = ld.getYear(); String weekDay = ld.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault()); System.out.format("Christmas in %d is on %s.%n", yr, weekDay); } } }
上面的代码生成以下结果。
LocalTime
类表示没有日期或时区的时间。
时间表示为纳秒精度。
LocalTime
类包含MIN,MAX,MIDNIGHT和NOON常量
MIN是00:00。 MAX是23:59:59.999999999。MIDNIGHT为00:00。NOON是12:00。
以下代码片段创建 LocalTime
对象:
import java.time.LocalTime; public class Main { public static void main(String[] args) { // current LocalTime localTime1 = LocalTime.now(); System.out.println(localTime1); // 09:30 LocalTime localTime2 = LocalTime.of(9, 30); System.out.println(localTime2); // 09:30:50 LocalTime localTime3 = LocalTime.of(9, 30, 50); System.out.println(localTime3); // 09:30:50.000005678 LocalTime localTime4 = LocalTime.of(9, 30, 50, 5678); System.out.println(localTime4); } }
上面的代码生成以下结果。
LocalDateTime
类表示没有时区的日期和时间。
LocalDateTime
是 LocalDate
和 LocalTime
的组合。
以下代码显示如何创建 LocalDateTime
对象:
import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; public class Main { public static void main(String[] args) { // current LocalDateTime localDateTime1 = LocalDateTime.now(); System.out.println(localDateTime1); // 2014-06-21T16:12:34 LocalDateTime localDateTime2 = LocalDateTime.of(2014, Month.JUNE, 21, 16, 12, 34); System.out.println(localDateTime2); // from a local date and a local time LocalDate localDate1 = LocalDate.of(2014, 5, 10); LocalTime localTime= LocalTime.of(16, 18, 41); LocalDateTime localDateTime3 = LocalDateTime.of(localDate1, localTime); System.out.println(localDateTime3); } }
上面的代码生成以下结果。
Java日期时间 -Java Chrono现场单元ChronoFieldChronoField枚举定义了一组标准字段,如 AMPM_OF_DAY,DAY_OF_MONTH,DAY_OF_WEEK...
Java日期时间 -Java日期和时间解析由 DateTimeFormatter 处理的解析是从字符串创建日期时间对象。用于格式化的相同符号用作解析...
Java流 -Java流操作外部迭代当使用Java集合时,我们使用外部迭代。在外部迭代中,我们为每个循环使用for或,或者为序列中的集合...