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

    xiaoxiao2023-03-24  5

    一、Calendar类

    Calendar是一个抽象类,是常用的日期处理对象。Calendar能处理复杂的日期计算。不仅包含Date的所有方法,还可以设置自己的时区和国际化格式。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(); } } }

    转载请注明原文地址: https://ju.6miu.com/read-1201145.html
    最新回复(0)