LocalDateTime的方法总结

 LocalDateTime的使用方法

1  public staticLocalDateTimenow():从指定时区的系统时钟获取当前的日期时间。

2  public staticLocalDateTimenow(Clockclock) 从指定的时钟获取当前的日期时间,clock不能为空。

3 public staticLocalDateTimeof(LocalDatedate,LocalTimetime)从日期和时间获取一个 LocalDateTime的实例。

4 public staticLocalDateTimeof(int year,Monthmonth, int dayOfMonth, int hour, int minute, int second) 从年,月,日,小时,分钟和秒获得LocalDateTime的实例,将纳秒设置为零。

 year- 从默认的 MIN_YEAR到 MAX_YEAR 的年份   

 month- 代表月份的1-12,不为空

 dayOfMonth- 代表月份中1-31,以月份中天数大小为准。

 hour- 从0到23的小时。

 minute- 从0到59的分钟。

 second- 从0到59的秒其他的同上

5 public int getDayOfYear() 获得日期字段(获得是年份中的第几天) 例如 2020/12/3 获得2020的第338天。

6 public int getDayOfMonth() 获取月份字段(获取月份中的第几天) 例如 2020/12/3 获得12月的第3天。

7 publicDayOfWeekgetDayOfWeek()获取星期几字段,这是一个枚举DayOfWeek 。(获得整个星期的星期几)例如 2020/12/3 获得这周的星期四。

8 public int getYear()获取年份字段。

9 publicMonthgetMonth()使用Month枚举获取月份字段(获得不是数组而是英文单词)。

10 public int getHour()获取时间字段。

11 public int getMinute()获取分钟字段。

12 public int getSecond()获得第秒的字段。

13 public LocalDateTime withYear(int year)返回此年份变更的LocalDateTime的副本。 时间不影响计算,结果将相同。 如果一年中的日期无效,它将被更改为该月的最后一个有效日期。

14 public LocalDateTime withMonth(int month)返回此年份更改的LocalDateTime的副本。 时间不影响计算,结果将相同。 如果一年中的日期无效,它将被更改为该月的最后一个有效日期。

15 public LocalDateTime withDayOfMonth(int dayOfMonth)返回这个LocalDateTime的副本,并更改日期。 如果结果LocalDateTime无效,则会抛出异常。 时间不影响计算,结果将相同。

16 public LocalDateTime withDayOfYear(int dayOfYear)返回此LocalDateTime的副本。 如果得到LocalDateTime是无效的,则抛出异常。

17 public LocalDateTime withHour(int hour)返回此日期值更改的LocalDateTime的副本。

18 public LocalDateTime withMinute(int minute)返回这个LocalDateTime的副本,小时值更改。

19 public LocalDateTime withSecond(int second)返回这个LocalDateTime的副本,并更改秒数值。

20 public LocalDateTime plusYears(long years)返回这个LocalDateTime的副本,并以指定的时间段添加。

该方法通过三个步骤将指定的数量添加到年份字段:

1.将输入年份添加到年份字段

2.检查结果日期是否无效

3.如果有必要,将月份调整到最后一个有效日期

例如,2008-02-29(闰年)加上一年将导致无效日期2009-02-29(标准年)。 而不是返回无效结果,而是选择2009-02-28的最后一个有效日期。

21 public LocalDateTime plusMonths(long months)返回这个LocalDateTime的副本,其中指定的时间段以月为单位。

此方法通过三个步骤将指定的数量添加到月份字段:

1.将输入的月份添加到月份字段

2.检查结果日期是否无效

3.如果有必要,将月份调整到最后一个有效日期

例如,2007-03-31加上一个月将导致无效日期2007-04-31。 而不是返回无效结果,而是选择2007-04-30的最后一个有效日期。

22 public LocalDateTime plusWeeks(long weeks)返回这个LocalDateTime的副本,其中指定的周期以周为单位。

该方法将指定的数量以周为单位,根据需要增加月份和年份字段的日期字段,以确保结果保持有效。 如果超过最大/最小年份,结果将无效。

例如,2008-12-31加上一周将导致2009-01-07。

23 public LocalDateTime plusDays(long days)返回此LocalDateTime的指定期间的LocalDateTime的副本。

此方法将指定的金额添加到天数字段中,根据需要增加月份和年份字段,以确保结果保持有效。 如果超过最大/最小年份,结果将无效。

例如,2008-12-31加上一天会导致2009-01-01。

24 public LocalDateTime plusHours(long hours)以指定的时间段返回此LocalDateTime的副本,小时数。

25 public LocalDateTime plusMinutes(long minutes)以指定的时间(以分钟为单位)返回此LocalDateTime的副本。

26 public LocalDateTime plusSeconds(long seconds)返回此副本LocalDateTime在加秒的规定时间。

27 public LocalDateTime minusYears(long years)返回此LocalDateTime的副本,以减去的年份为单位。

该方法从三个步骤中减去指定的数量:

1.从年度字段减去输入年数

2.检查结果日期是否无效

3.如果有必要,将月份调整到最后一个有效日期

例如,2008-02-29(闰年)减去一年将导致无效日期2009-02-29(标准年)。 而不是返回无效结果,而是选择2009-02-28的最后一个有效日期。

28 public LocalDateTime minusMonths(long months)返回此LocalDateTime的副本,指定的时间以月为单位减去。

该方法从以下三个步骤中减去月份字段中指定的数量:

1.从月份字段减去输入月份

2.检查结果日期是否无效

3.如果有必要,将月份调整到最后一个有效日期

例如,2007-03-31减去一个月将导致无效日期2007-04-31。 而不是返回无效结果,而是选择2007-04-30的最后一个有效日期。

29 public LocalDateTime minusWeeks(long weeks)返回此LocalDateTime一个副本,以指定的周期扣除。

该方法从必要的日期字段减去月和年字段中减去指定的数量,以确保结果保持有效。 如果超过最大/最小年份,结果将无效。

例如,2009-01-07减去一周将导致2008-12-31。

30 public LocalDateTime minusDays(long days)返回此LocalDateTime的副本,其中指定的时间间隔以天为单位。

该方法从天数字段减去指定数量,根据需要增加月份和年份字段,以确保结果保持有效。 如果超过最大/最小年份,结果将无效。

例如,2009-01-01减去一天会导致2008-12-31。

31 public LocalDateTime minusHours(long hours)以指定的时间段返回此LocalDateTime的副本,以减少的小时数。

32 public LocalDateTime minusMinutes(long minutes)返回此LocalDateTime的副本,其中指定的时间间隔以分钟为单位。

33 public LocalDateTime minusSeconds(long seconds)返回此LocalDateTime的副本,其中指定的时间间隔以秒为单位。

34 public String format(DateTimeFormatter formatter)使用指定的格式化程序格式化此日期时间。这个日期时间将传递给格式化程序以生成一个字符串。

35 public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)使用特定的格式化LocalDateTime从文本字符串获取LocalDateTime的实例。

36 public boolean isBefore(ChronoLocalDateTime other) 检查此日期时间是否在指定的日期时间之前

37 public boolean isAfter(ChronoLocalDateTime other)检查这个日期时间是否在指定的日期之后。

38 public boolean equals(Object obj) 检查这个日期时间是否等于另一个日期时间。

39public boolean isEqual(ChronoLocalDateTime other)检查此日期时间是否等于指定的日期时间。

40 public String toString()将此日期时间输出为String,如2007-12-03T10:15:30。


 以下是测试方法,可以copy测试。

@RunWith(SpringRunner.class)

@SpringBootTest

public class DataTimeUtil {

    @Test

    public void test(){

        LocalDateTime local=LocalDateTime.now();

        System.out.println("获取默认当前时间为 "+local);

        Clock clock=Clock.systemDefaultZone();

        System.out.println("获取默认当前的Clock "+clock.toString());

        LocalDateTime localDateTime1=LocalDateTime.now(clock);

        System.out.println("获取Clock时区的时间为"+localDateTime1);

        LocalDate localDate= LocalDate.now();

        LocalTime localTime=LocalTime.now();

        LocalDateTime localDateTime2=LocalDateTime.of(localDate,localTime);

        System.out.println("localDate是 "+localDate+" localTime是 "+localTime+" 获取的localDateTime2 "+localDateTime2);

        System.out.println("分割线-------------------------------------------------------------------分割线");

        Integer dayOfYear=local.getDayOfYear();

        Integer dayOfMonth=local.getDayOfMonth();

        DayOfWeek dayOfWeek=local.getDayOfWeek();

        System.out.println("获得是年份中的第几天 "+dayOfYear+" 获取月份中的第几天 "+dayOfMonth+" 获得整个星期的星期几 "+dayOfWeek);

        Integer year=local.getYear();

        Month month=local.getMonth();

        Integer hour=local.getHour();

        Integer minute=local.getMinute();

        Integer second=local.getSecond();

        System.out.println("获得年份 "+year+" 获得月份 "+month+" 获得小时 "+hour+" 获得分钟 "+minute+ " 获得秒钟 "+second);

        System.out.println("分割线-------------------------------------------------------------------分割线");

        LocalDateTime currentTimeWithDayOfYear=local.withDayOfYear(12);

        LocalDateTime currentTimeWithDayOfMonth=local.withDayOfMonth(11);

        LocalDateTime currentTimeWithYear=local.withYear(2019);

        LocalDateTime currentTimeWithMonth=local.withMonth(1);

        LocalDateTime currentTimeWithHour=local.withHour(12);

        LocalDateTime currentTimeWithMinute=local.withMinute(22);

        LocalDateTime currentTimeWithSecond=local.withSecond(12);

        System.out.println("年份中天变更 "+currentTimeWithDayOfYear+" 月份中天变更 "+currentTimeWithDayOfMonth+" 年份变更 "+currentTimeWithYear

                          +"月份变更 "+currentTimeWithMonth+" 时变更 "+currentTimeWithHour+" 分钟变更 "+currentTimeWithMinute

                          +"秒变更 "+currentTimeWithSecond);

        System.out.println("分割线-------------------------------------------------------------------分割线");

        LocalDateTime currentTimeAddYear=local.plusYears(1);

        LocalDateTime currentTimeAddMonth=local.plusMonths(1);

        LocalDateTime currentTimeAddDay=local.plusDays(1);

        LocalDateTime currentTimeAddWeek=local.plusWeeks(1);

        LocalDateTime currentTimeAddHour=local.plusHours(1);

        LocalDateTime currentTimeAddSecond=local.plusSeconds(1);

        LocalDateTime currentTimeAddMinutes=local.plusMinutes(1);

        System.out.println("加年份 "+currentTimeAddYear+" 加月份 "+currentTimeAddMonth+" 加天 "+currentTimeAddDay

                        +" 加周 "+currentTimeAddWeek+" 加小时 "+currentTimeAddHour+" 加分钟 "+currentTimeAddMinutes

                        +" 加秒 "+currentTimeAddSecond);

        LocalDateTime currentTimeMinusYear=local.minusYears(1);

        LocalDateTime currentTimeMinusMonth=local.minusMonths(1);

        LocalDateTime currentTimeMinusWeek=local.minusWeeks(1);

        LocalDateTime currentTimeMinusDay=local.minusDays(1);

        LocalDateTime currentTimeMinusHour=local.minusHours(1);

        LocalDateTime currentTimeMinusMinute=local.minusMinutes(1);

        LocalDateTime currentTimeMinusSecond=local.minusSeconds(1);

        System.out.println("减年份 "+currentTimeMinusYear+" 减月份 "+currentTimeMinusMonth+" 减天 "+currentTimeMinusDay

                        +" 减周 "+currentTimeMinusWeek+" 减小时 "+currentTimeMinusHour+" 减分钟 "+currentTimeMinusMinute

                        +" 减秒 "+currentTimeMinusSecond);

        System.out.println("分割线-------------------------------------------------------------------分割线");

        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        //它会把时间格式化为指定格式的字符串 创建实例才能使用format()方法

        String nowTime=local.format(formatter);

        System.out.println("格式化后的数据时(得到String类型) "+nowTime);

        //parse()方法通过LocalDateTime

        String str11="2007-12-03T10:15:30";

        //注意当String str="2010-1-1 10:10:10"格式会报错

        String str="2010-01-01 10:10:10";

        LocalDateTime parseTime=LocalDateTime.parse(str11);

        LocalDateTime parseTime1=LocalDateTime.parse(str,formatter);

        System.out.println("格式化后的数据时(得到LocalDateTime类型) "+ parseTime+

                          "格式化后的数据时(得到LocalDateTime类型)有俩个参数 "+parseTime1);

        //传入的参数是LocalDateTime类型

        LocalDateTime date=parseTime;

        boolean flag=local.isBefore(date);

        boolean flag1=local.isAfter(date);

        System.out.println("传入的参数是 "+date+" 是否在传入的数据之前 "+flag+"是否在传入的数据之后 "+flag1);

        //是否相等

        boolean flag2=local.equals(date);

        System.out.println("localDateTime1和localDateTime2是否相等 "+flag2);

        boolean flag3=local.isEqual(date);

        System.out.println("localDateTime1和localDateTime2是否相等 "+flag3);

        String Str=date.toString();

        System.out.println("输出字符串 "+Str);

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,961评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,444评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,009评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,082评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,101评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,271评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,738评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,395评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,539评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,434评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,481评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,160评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,749评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,816评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,038评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,548评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,140评论 2 341

推荐阅读更多精彩内容