LocalDate类的简单应用

LocalDate类的简单应用(显示当前月日历)

java.lang.Object    
  java.time.LocalDate
        常用方法
        ----
        1、static localTime now()
        构造一个表示当前日期的对象
        2、static LocalTime of(int year,int month,int day)
        构造一个表示给定日期的对象
        3int getYear()
        获得当前日期的年
        4int getMonthValue()
        获得当前日期的月
        5int getDayOfMonth()
        获得当前日期的日
        6、DayOfWeek getDayOfWeek()
        获得当前日期是星期几,作为DayOfWeek类的一个实例返回。调用getValue()方法来得到1~7之间的一个数,表示这是星期几,1表示星期一,7表示星期天
        7、LocalDate plusDays(int n)
        生成当前日期之后n天的日期
        8、LocalDate minusDays(int n)
        生成当前日期之前n天的日期
package CalendarTest;

/**
 * @version 1.20 2016-12-28
 * @author NPJ
 */
import java.time.*;

public class CalendarTest {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();//构造一个表示当前日期的对象
        int month = date.getMonthValue();//获取当前月份
        int today = date.getDayOfMonth();//获取当前日期

        date = date.minusDays(today-1); //设置date为这个月的第一天,并且得到这一天为星期几
        DayOfWeek weekday = date.getDayOfWeek();
        int value = weekday.getValue();

        //打印日历的主体
        System.out.println(" Mon Tue Wed Thu Fri Sat Sun");

        for(int i = 1; i < value; i++) 
            System.out.print("    ");


        while(date.getMonthValue() == month) {

            System.out.printf("%3d",date.getDayOfMonth());

            if(date.getDayOfMonth() == today) {
                System.out.print("*");
            }else {
                System.out.print(" ");
            }

            date = date.plusDays(1);

            if(date.getDayOfWeek().getValue() == 1) {//如果是星期一,则换行输出
                System.out.println();
            }
        }

        if(date.getDayOfWeek().getValue() != 1)
            System.out.println();
    }
}

结果如下:
这里写图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: localdate的优点是它是一个不可变对象,这意味着它的值不会发生改变。此外,它不包含任何时间信息,因此它可以被用于处理与时区无关的日期。localdate还提供了许多方便的方法来操作日期,如获取当前日期、计算日期间隔等。 ### 回答2: LocalDateJava 8中引入的日期API之一,它具有以下优点: 1. 使用方便:LocalDate提供了简单易用的方法来处理日期,例如获取年、月、日等信息,以及进行日期的加减运算。它将日期的表示与时区和时间分离,易于迁移和处理。 2. 不可变性:LocalDate是不可变的,它的实例一旦创建就不能被修改,确保了线程安全性。这使得它在多线程环境下更加可靠。 3. 不依赖时区:LocalDate与时区无关,它只关注日期的年、月和日。无论是在哪个时区,用LocalDate表示的日期都是一样的。这对于跨时区的应用程序非常有用。 4. 日期格式化:LocalDate可以方便地进行日期格式转换。它提供了各种格式化方法,可以将日期转换为指定格式的字符串,也可以将字符串解析为LocalDate对象。 5. 支持大部分日期操作:LocalDate支持常见的日期运算,如加减天数、月数、年数等。这样,我们可以方便地进行日期的计算和比较,而不需要手动处理日期的复杂逻辑。 6. 兼容现有代码:LocalDate可以与旧版的Date和Calendar对象互相转换,这使得它在与旧代码的集成和迁移中更具灵活性。 总之,LocalDate是一个简单易用、线程安全的日期处理,它的不可变性、时区独立性以及方便的日期操作使得它成为Java编程中处理日期的首选。 ### 回答3: LocalDateJava 8中提供的一个日期,用于表示不带时区的日期。 LocalDate的优点有以下几个方面: 1.易于使用:LocalDate提供了简单、直观和易于使用的方法来处理日期,比如计算两个日期之间的天数、月份和年份差距,以及日期的格式化和解析等操作。 2.线程安全:LocalDate是不可变的,也就是说它的值不能被修改,这使得它在多线程环境下是线程安全的。这意味着可以在多个线程之间共享并使用LocalDate对象,而不需要担心数据的一致性问题。 3.跨平台:LocalDate可以在不同的平台和操作系统上使用,无需担心时区问题。它的设计目标是基于ISO-8601日历系统,可以在任何时区和国家/地区使用。 4.易于扩展:LocalDate是一个抽象,其具体实现LocalDateLocalDateTime和LocalTime等。这些都可以相互转换,使得在处理日期和时间时更加灵活和方便。 5.支持日期操作:LocalDate提供了丰富的方法来对日期进行操作,比如加减天数、月份和年份、修改日期的某个部分(如年、月或者日)、获取日期的一部分(如年、月或者日)等。这些方法使得在编程中处理日期操作变得更加简单和高效。 综上所述,LocalDate具有易于使用、线程安全、跨平台、易于扩展以及支持日期操作等优点,使得它成为Java开发中处理日期的首选之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值