java中GregorianCalendar类返回当前年月日怎么和现实差了1个月

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中GregorianCalendar类返回当前年月日怎么和现实差了1个月相关的知识,希望对你有一定的参考价值。

代码如下:
import java.util.GregorianCalendar;
class testGregorianCalendar


public static void main(String[] args)

GregorianCalendar calendar1 = new GregorianCalendar();

System.out.println("Year:"+ calendar1.get(GregorianCalendar.YEAR));

System.out.println("Month:"+ calendar1.get(GregorianCalendar.MONTH));

System.out.println("Date:"+ calendar1.get(GregorianCalendar.DATE));


对于java中Calendar和GregorianCalendar的get方法返回的MONTH代表的整型值,

0代表1月,11代表12月。

get方法主要用于数值计算,而不该用于直接显示,所以基于0起。

显示月份应该用

calendar.getDisplayName(
    GregorianCalendar.MONTH,
    GregorianCalendar.SHORT, 
    Locale.CHINA);//这样

或者另外SimpleDateFormat输出统一格式

参考技术A Date类对象的创建:

n 创建一个当前时间
//默认是创建一个代表系统当前日期的Date对象
Date d = new Date();
n 创建一个我们指定的时间的Date对象:
下面是使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。
//创建一个代表2009年6月12号的Date对象
Date d1 = new Date(2009-1900, 6-1, 12); (注意参数的设置啊!)
l 正确获得一个date对象所包含的信息
如:
Date d2 = new Date(2009-1900, 6-1, 12);
//获得年份 (注意年份要加上1900,这样才是日期对象d2所代表的年份)
int year = d2.getYear() + 1900;
//获得月份 (注意月份要加1,这样才是日期对象d2所代表的月份)
int month = d2.getMonth() + 1;
//获得日期
int date = d2.getDate();
//获得小时
int hour = d2.getHours();
//获得分钟
int minute = d2.getMinutes();
//获得秒
int second = d2.getSeconds();
//获得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次类推了)
int day = d2.getDay();
运行结果:
年份:2015
月份:7
日期:23
小时:0 //不设置默认是0
分钟:0 //不设置默认是0
秒:0 //不设置默认是0
星期:5 //15-7-23今天就是星期5,又是一个星期天

java 日历和GregorianCalendar

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Main {

    public static void main(String[] args) {

        Calendar calendar = Calendar.getInstance(); //Get the current date and time

        //Print out a constant from the calendar
        System.out.println("Year: " + calendar.get(Calendar.YEAR));
        //Print out the full date
        System.out.println("Date: " + (calendar.get(Calendar.MONTH) + 1) + " " + calendar.get(Calendar.DATE) + " " + calendar.get(Calendar.YEAR));
        //Time
        System.out.println("Time: " + calendar.get(Calendar.HOUR) + ":" + calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND));

        //If you want to show the actual month in english
        String monnths[] = {
                "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
        };
        System.out.println("Month: " + monnths[calendar.get(Calendar.MONTH)]);

        //Setting the values of the Calendar
        calendar.set(2019, 0, 16);
        calendar.set(Calendar.SECOND, 25);
        calendar.set(Calendar.HOUR, 11);
        System.out.println("Updated Date and Time");
        System.out.println("Date: " + (calendar.get(Calendar.MONTH) + 1) + " " + calendar.get(Calendar.DATE) + " " + calendar.get(Calendar.YEAR));
        System.out.println("Time: " + calendar.get(Calendar.HOUR) + ":" + calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND));

        System.out.println(calendar.getTime()); //Another simple way to get time or date object

        //The Gregorian Calendar
        GregorianCalendar gcal = new GregorianCalendar(); //Use your current time
        GregorianCalendar gcal2 = new GregorianCalendar(2019, 2, 14);
        //Since gregorian calendar is concrete, you can instantiate ^

    }
}

以上是关于java中GregorianCalendar类返回当前年月日怎么和现实差了1个月的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.IllegalArgumentException:坏类:类 java.util.GregorianCalendar

java 中GregorianCalendar类跟Calendar类有啥本质的区别,以及都怎么用

日期操作类--GregorianCalendar类

java中GregorianCalendar类与Calendar类的关系与区别?

调用java.util包中的Date和GregorianCalendar类来制作万年历 能够结合java.util包

测试日历的类 GregorianCalendar