你不知道的Java学习笔记16--Calendarn 日期类

一、Calendar类

  1. Calendar是一个抽象类,是常用的日期处理对象。
  2. Calendar能处理复杂的日期计算。不仅包含Date的所有方法,还可以设置自己的时区和国际化格式。
  3. Calendar比Date功能要强得多,表示的形式更加多更加丰富。Calendar抽象类定义了足够的方法,让我们能够表述日历的规则。
**//Date表示形式**
Sat Sep 24 11:06:41 SGT 2016
**//Calendar表示形式**
java.util.GregorianCalendar[time=1474686401935,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Singapore",offset=28800000,dstSavings=0,useDaylight=false,transitions=9,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=268,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=6,SECOND=41,MILLISECOND=935,ZONE_OFFSET=28800000,DST_OFFSET=0]

二、Calendar类常用操作

(一)、获取Clandar对象的实例,取得当前时间的信息。

Canlendar c=Calendar.getlnstance();
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {

public static void main(String[] args) {
//获取Date类对象的实例,取得当前时间的信息
Date d=new Date();
//获取Clandar对象的实例,取得当前时间的信息
Calendar c=Calendar.getInstance();
System.out.println(d);
System.out.println(c);
}
}

这里写图片描述

程序运行结果:

Sat Sep 24 11:12:50 SGT 2016
java.util.GregorianCalendar[time=1474686401935,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Singapore",offset=28800000,dstSavings=0,useDaylight=false,transitions=9,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=268,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=6,SECOND=41,MILLISECOND=935,ZONE_OFFSET=28800000,DST_OFFSET=0]

(二)、设置Calendar实例所表示的时间。

c.set();

在当前时间的信息中修改,用设置的元素值去代替相应的值,其他保持不变。

以c.set(field, value)为例。

Field:表示有设置Calendar中的那个元素,value要设置元素的值是多少。

import java.util.Calendar;
public class CalendarTest {

public static void main(String[] args) {
//获取Clandar对象的实例,取得当前时间的信息
Calendar c=Calendar.getInstance();
//在当前时间的信息中修改,用设置的元素值去代替相应的值,其他保持不变
c.set(Calendar.YEAR, 2020);
System.out.println(c);
}
}

这里写图片描述

(三)、获取指定的时间属性

C.get(Calendar.时间属性)

在获取月份时记得“+1”,因为月份是从0开始计算的,比实际月份少1。

import java.util.Calendar;
public class CalendarTest {

public static void main(String[] args) {
//获取Clandar对象的实例,取得当前时间的信息
Calendar c=Calendar.getInstance();
//获取指定的时间属性--年
int year=c.get(Calendar.YEAR);
//获取指定的时间属性--月
int month=c.get(Calendar.MONTH)+1;
//获取指定的时间属性--日
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
}
}

这里写图片描述

(四)、SimpleDateFormat类

1、SimpleDateFormat类是一个以语言环境相关的方式来格式化和分析日期的具体类。
2、SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式。
3、H:代表一天中的小时数(0-23);h:am/pm中的小时数(1-12)。
4、s:代表分钟的秒数;S:代表毫秒数。

SimpleDateFormat类的使用

1、获取SimpleDateFormat的实例

SimpleDateFormat sdf=new SimpleDateFormat(“自定义时间格式”);
在小时里,HH代表24小时制,hh代表12小时制。

例如:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

2、将日期格式成指定的字符串

sdf.format(new Date)
把日期按照自己定义的格式输出来。

import java.text.SimpleDateFormat;
import java.util.Date;
public class CalendarTest {
    public static void main(String[] args) {
        //获取指定日期格式的SimpleFormat实例
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //获取指定日期的格式化字符串
        String nowStr =sdf.format(new Date());
        System.out.println(nowStr);
    }
}

这里写图片描述

3、将格式化的字符串转换成日期对象

sdf.parse(“具体时间数值”)
把具体时间数值字符串转换成日期对象,是在原来的基础上进行相应地修改,没有定义取其默认值。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CalendarTest {

    public static void main(String[] args) {
        //获取指定日期格式的SimpleFormat实例
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //将格式化的字符串转换成日期
        try {
            Date d = sdf.parse("2016-9-24 14:17:30");            
            System.out.println(d);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值