欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 8---LocalDate,LocalTime处理日期时间,获取当前时间的最大时间和最小时间

程序员文章站 2022-06-09 16:05:01
...
package test;
 
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
 
/**
 * Created by lightClouds917
 * Date 2017/11/6
 * Description:Java8中处理时间和日期的类
 *
 SQL  -> Java
 --------------------------
 date -> LocalDate
 time -> LocalTime
 timestamp -> LocalDateTime
 */
public class DateTest2 {
    public static void main(String[] args){
        test1();
        test2();
 
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
 
    /**
     * 处理日期 LocalDate
     */
    public static void test1(){
        //获取当前日期   2017-11-06
        LocalDate today = LocalDate.now();
        System.out.println(today);
 
        //构造日期   2017-10-08
        LocalDate today2 = LocalDate.of(2017,10,8);
        System.out.println(today2);
 
        //构造日期   2017-02-22    字符串严格按照yyyy-MM-dd
        LocalDate today3 = LocalDate.parse("2017-02-22");
        System.out.println(today3);
 
        //本月第一天  2017-11-01
        LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
        System.out.println(firstDayOfMonth);
        //本月第二天  2017-11-02   第n天
        LocalDate secondDayOfMonth = today.withDayOfMonth(2);
        System.out.println(secondDayOfMonth);
 
        //本月最后一天 2017-02-28  方便解决任何年份的二月份多少天
        LocalDate lastDayOfMonth = today3.with(TemporalAdjusters.lastDayOfMonth());
        System.out.println(lastDayOfMonth);
 
 
        //获取2017年12月的第一个周一   2017-12-04
        LocalDate firstDayOf201712 = LocalDate.parse("2017-12-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
        System.out.println(firstDayOf201712);
 
    }
 
    /**
     * 处理时间  LocalTime
     */
    public static void test2(){
        //获取当前时间  含有毫秒值  17:18:41.571
        LocalTime now = LocalTime.now();
        System.out.println(now);
 
        //获取当前时间   去掉毫秒值   17:45:41
        LocalTime now1 = LocalTime.now().withNano(0);
        System.out.println(now1);
        //00:46:46.651  提供了把时分秒都设为0的方法
        LocalTime now2 = LocalTime.now().withHour(0);
        System.out.println(now2);
 
        //构造时间  00:20:55
        LocalTime time1 = LocalTime.of(0,20,55);
        System.out.println(time1);
        //构造时间  05:43:22
        LocalTime time2 = LocalTime.parse("05:43:22");
        System.out.println(time2);
 
 
        //标准时间 2017-11-06T17:53:15.930
        LocalDateTime lt = LocalDateTime.now();
        System.out.println(lt);
    }
}

java获取当前时间的最大时间和最小时间

	public static void main55(String[] args) {
//        LocalDate localDate = LocalDate.now();
//        LocalDateTime minTime = localDate.atTime(LocalTime.MIN);
//        LocalDateTime maxTime = localDate.atTime(LocalTime.MAX);


		LocalDateTime localDateTime = LocalDateTime.now();
		LocalDateTime minTime = localDateTime.with(LocalTime.MIN);
		LocalDateTime maxTime = localDateTime.with(LocalTime.MAX);

		final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
		String min = minTime.format(dateTimeFormatter);
		String max = maxTime.format(dateTimeFormatter);

		System.out.println(min);
		System.out.println(max);
	}
all method:
1.  adjustInto  调整指定的Temporal和当前LocalDateTime对
2.  atOffset    结合LocalDateTime和ZoneOffset创建一个
3.  atZone  结合LocalDateTime和指定时区创建一个ZonedD
4.  compareTo   比较两个LocalDateTime
5.  format  格式化LocalDateTime生成一个字符串
6.  from    转换TemporalAccessor为LocalDateTi
7.  get 得到LocalDateTime的指定字段的值
8.  getDayOfMonth   得到LocalDateTime是月的第几天
9.  getDayOfWeek    得到LocalDateTime是星期几
10. getDayOfYear    得到LocalDateTime是年的第几天
11. getHour 得到LocalDateTime的小时
12. getLong 得到LocalDateTime指定字段的值
13. getMinute   得到LocalDateTime的分钟
14. getMonth    得到LocalDateTime的月份
15. getMonthValue   得到LocalDateTime的月份,从112
16. getNano 得到LocalDateTime的纳秒数
17. getSecond   得到LocalDateTime的秒数
18. getYear 得到LocalDateTime的年份
19. isAfter 判断LocalDateTime是否在指定LocalDateT
20. isBefore    判断LocalDateTime是否在指定LocalDateT
21. isEqual 判断两个LocalDateTime是否相等
22. isSupported 判断LocalDateTime是否支持指定时间字段或单元
23. minus   返回LocalDateTime减去指定数量的时间得到的值
24. minusDays   返回LocalDateTime减去指定天数得到的值
25. minusHours  返回LocalDateTime减去指定小时数得到的值
26. minusMinutes    返回LocalDateTime减去指定分钟数得到的值
27. minusMonths 返回LocalDateTime减去指定月数得到的值
28. minusNanos  返回LocalDateTime减去指定纳秒数得到的值
29. minusSeconds    返回LocalDateTime减去指定秒数得到的值
30. minusWeeks  返回LocalDateTime减去指定星期数得到的值
31. minusYears  返回LocalDateTime减去指定年数得到的值
32. now 返回指定时钟的当前LocalDateTime
33. of  根据年、月、日、时、分、秒、纳秒等创建LocalDateTi
34. ofEpochSecond   根据秒数(1970-01-0100:00:00开始)创建L
35. ofInstant   根据Instant和ZoneId创建LocalDateTim
36. parse   解析字符串得到LocalDateTime
37. plus    返回LocalDateTime加上指定数量的时间得到的值
38. plusDays    返回LocalDateTime加上指定天数得到的值
39. plusHours   返回LocalDateTime加上指定小时数得到的值
40. plusMinutes 返回LocalDateTime加上指定分钟数得到的值
41. plusMonths  返回LocalDateTime加上指定月数得到的值
42. plusNanos   返回LocalDateTime加上指定纳秒数得到的值
43. plusSeconds 返回LocalDateTime加上指定秒数得到的值
44. plusWeeks   返回LocalDateTime加上指定星期数得到的值
45. plusYears   返回LocalDateTime加上指定年数得到的值
46. query   查询LocalDateTime
47. range   返回指定时间字段的范围
48. toLocalDate 返回LocalDateTime的LocalDate部分
49. toLocalTime 返回LocalDateTime的LocalTime部分
50. toString    返回LocalDateTime的字符串表示
51. truncatedTo 返回LocalDateTime截取到指定时间单位的拷贝
52. until   计算LocalDateTime和另一个LocalDateTi
53. with    返回LocalDateTime指定字段更改为新值后的拷贝
54. withDayOfMonth  返回LocalDateTime月的第几天更改为新值后的拷贝
55. withDayOfYear   返回LocalDateTime年的第几天更改为新值后的拷贝
56. withHour    返回LocalDateTime的小时数更改为新值后的拷贝
57. withMinute  返回LocalDateTime的分钟数更改为新值后的拷贝
58. withMonth   返回LocalDateTime的月份更改为新值后的拷贝
59. withNano    返回LocalDateTime的纳秒数更改为新值后的拷贝
60. withSecond  返回LocalDateTime的秒数更改为新值后的拷贝
61. withYear    返回LocalDateTime年份更改为新值后的拷贝