关于Calendar类使用中遇到的一些问题

Posted lorz5-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Calendar类使用中遇到的一些问题相关的知识,希望对你有一定的参考价值。

关于Calendar类使用中遇到的一些问题

1、为什么类似Calender.YEAR之类的字段的使用需要使用get方法来获取?

程序如下:

public class Test {
    public static void main(String[] args) {
        Calendar cc = Calendar.getInstance();

        // 获取cc的年份
        System.out.println("正确结果需要使用get方法 —————— " + cc.get(Calendar.YEAR));
        System.out.println("直接打印字段 —————— " + Calendar.YEAR);
    }
}

原因:

  • Calendar类中的字段其实是一个个的常量,类型为int型,调用get方法其实是传递这些字段对应的int数值,再通过其他的手段获取到我们想要的正确含义的值

再一个例子:

// 获取“上午”还是“下午”的值
Calendar calendar = Calendar.getInstance();

if(calendar.get(Calendar.AM_PM) == 0) {
    System.out.println("现在是上午哦");
} else {
    System.out.println("现在是下午哦");
}
  • 按照国际上的习惯,将晚上12:00到中午12:00之间的时间归为“AM”,即上午;将中午12:00到晚上12:00之间的时间归为“PM”,即下午。再准确的说是左闭右合,[0, 12) 为上午, AM_PM 值为 1 [12, 24)为下午,
  • AM_PM 对应的常量值为 9

2、获取星期值的一些问题

代码如下:

// 获取星期几
String[] week = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
System.out.println(week[calendar.get(Calendar.DAY_OF_WEEK) - 1]);
  • 按照国际上的习惯,将星期日作为每个星期的第一日
  • Calendar.DAY_OF_WEEK 的确表示现在是星期几,但是是基一的标准,即“1”对应的日期为“星期日”,以此类推

以上是关于关于Calendar类使用中遇到的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

关于片段生命周期

Java 中Calendar日历类的基本使用

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

Java学习关于时间操作的应用类--Date类Calendar类及其子类

使用片段从另一个类获取值时出现 NullPointerException [重复]