一,Date类:日期类
表示特定的瞬间,精确到毫秒,1秒=1000毫秒
1. 构造:
public Date();
无参构造,构造一个代表当前系统时间的Date对象
public Date(long time);
一指定毫秒创建一个代表当前系统时间的Date对象 毫秒值代表距离
标准时间(1970年01月01日 00:00:00)的毫秒值
把毫秒值转换为Date对象
2. 成员方法:
toString();
是Date类重写了Object类的toString 方法
返回值是 (星期几 月份 月份 时:分:秒 时区 年)
getTime();
把Date对象转换为毫秒值
返回值是当前时间距离标准时间有多少毫秒值
二,DateFormat类:日期格式化类
把date对象按指定格式转换为String
DateFormat是一个抽象类,不能直接使用它
一般使用SimpleDateFormat
1.构造
SimpleDateFormat(String pattern)
得到格式化时间
* y 年; M 年中的月份;
* w 年中的周数;
* W月份中的周数;
* D 年中的天数 ;
* d 月份中的天数 ;
* F 月份中的星期 ;
* E 星期中的天数 ;
* a Am/pm 标记;
* H 一天中的小时数(0-23);
* k 一天中的小时数(1-24);
* K am/pm 中的小时数(0-11)
* h am/pm 中的小时数(1-12)
* m 小时中的分钟数
* s 分钟中的秒数
* S 毫秒数
* z 时区
* Z 时区
2.成员方法
format(Date d);格式化时间
传入Date
返回已经格式化的字符串
parse(str);解析时间
传入需要解析的字符串
返回Date对象
图一
demo如图1所示:输出 :
2019年01月21日,19时 39分 53秒
Mon Jan 21 19:39:53 CST 2019
Mon Jan 21 19:39:53 CST 2019
三,Calendar类:日历类
Calendar是一个抽象类,不能直接使用
一般使用Calender的静态方法
1.静态方法
getInstance()
使用:Calendar.getInstance();
2.成员方法
get(Calendar.YEAR);获取时间
获取Calender中的某一个字段/成员变量
static int | ALL_STYLES getDisplayNames的样式说明符, 表示所有样式的名称,如“1月”和“1月”。 |
---|---|
static int | AM AM_PM字段的值表示从午夜到中午之前的一天中的一段时间。 |
static int | AM_PM 对于现场数 get和 set指示是否 HOUR是前或中午之后。 |
static int | APRIL MONTH字段的价值 指示了格里高利和朱利安日历中的第四个月。 |
protected boolean | areFieldsSet 如果 fields[]与当前设置的时间同步,则为真。 |
static int | AUGUST MONTH领域的价值 指示了公历和朱利安日历中的第八个月。 |
static int | DATE get和 set字段编号表示该月的日期。 |
static int | DAY_OF_MONTH get字段编号和 set本月的日期。 |
static int | DAY_OF_WEEK get字段编号和 set表示一周中的日期。 |
static int | DAY_OF_WEEK_IN_MONTH get字段编号和 set当月的 set几的序号。 |
static int | DAY_OF_YEAR get和 set字段编号, set本年度的日数。 |
static int | DECEMBER MONTH字段的值表示公历和朱利安日历中的第十二个月。 |
static int | DST_OFFSET get和 set字段编号 get夏令时偏移量(以毫秒为单位)。 |
static int | ERA get和 set字段号表示时代,例如在儒略历中的AD或BC。 |
static int | FEBRUARY MONTH字段的价值表示今年第二个月在公历和朱利安日历。 |
static int | FIELD_COUNT get和 set的不同字段的数量。 |
protected int[] | fields 该日历的当前设置时间的日历字段值。 |
static int | FRIDAY DAY_OF_WEEK字段的值表示周五。 |
static int | HOUR get和 set字段编号, get上午或下午的小时。 |
static int | HOUR_OF_DAY get字段编号和 set当天的小时数。 |
protected boolean[] | isSet 说明是否设置日历的指定日历字段的标志。 |
protected boolean | isTimeSet 如果那么那么 time的值是有效的。 |
static int | JANUARY MONTH字段的价值表示今年首次在公历和朱利安日历。 |
static int | JULY MONTH字段的值代表了 公历和朱利安日历中的第七个月。 |
static int | JUNE MONTH字段的价值 指示了公历和朱利安日历中的第六个月。 |
static int | LONG getDisplayName和 getDisplayNames相当于 LONG_FORMAT的样式说明 符 。 |
static int | LONG_FORMAT getDisplayName和 getDisplayNames的样式说明 符 , 表示用于格式的长名称。 |
static int | LONG_STANDALONE 一个 getDisplayName和 getDisplayNames的样式说明 符 , 表示一个独立使用的长名称,例如月份名称作为日历头。 |
static int | MARCH MONTH字段的值代表了 公历和朱利安日历中的第三个月。 |
static int | MAY MONTH领域的价值 指示了公历和朱利安日历中的第五个月。 |
static int | MILLISECOND get和 set字段号表示 get内的 set数。 |
static int | MINUTE get和 set字段编号表示小时内的分钟。 |
static int | MONDAY DAY_OF_WEEK字段的值表示星期一。 |
static int | MONTH get和 set字段号表示月份。 |
static int | NARROW_FORMAT getDisplayName和 getDisplayNames的样式说明 符 , 表示用于格式的窄名称。 |
static int | NARROW_STANDALONE getDisplayName和 getDisplayNames的样式说明 符 独立地表示一个狭义的名称。 |
static int | NOVEMBER MONTH领域的价值 指示了公历和朱利安日历中的第十一个月。 |
static int | OCTOBER MONTH字段的价值表示在公历和朱利安日历中的一年中的第十个月。 |
static int | PM AM_PM字段的值表示从中午到午夜之前的一天中的一段时间。 |
static int | SATURDAY DAY_OF_WEEK字段的值表示星期六。 |
static int | SECOND get和 set字段编号表示分钟内的第二个。 |
static int | SEPTEMBER MONTH字段的值代表了 公历和朱利安日历中的第九个月。 |
static int | SHORT getDisplayName和 getDisplayNames的样式说明 符 , 相当于 SHORT_FORMAT 。 |
static int | SHORT_FORMAT getDisplayName和 getDisplayNames的样式说明 符 , 表示用于格式的短名称。 |
static int | SHORT_STANDALONE 一个用于 getDisplayName和 getDisplayNames的样式说明 符 , 表示一个简单的名称,例如一个月缩写作为日历头。 |
static int | SUNDAY DAY_OF_WEEK字段的值表示星期天。 |
static int | THURSDAY DAY_OF_WEEK字段的值表示星期四。 |
protected long | time 这个日历的当前设定时间,以1970年1月1日,格林尼治标准时间0:00:00之后的毫秒表示。 |
static int | TUESDAY DAY_OF_WEEK字段的值表示周二。 |
static int | UNDECIMBER MONTH字段的值表示一年的第十三个月。 |
static int | WEDNESDAY DAY_OF_WEEK字段的值表示周三。 |
static int | WEEK_OF_MONTH get和 set字段编号, set当月的周数。 |
static int | WEEK_OF_YEAR get和 set字段编号, set本年度的周数。 |
static int | YEAR get现场编号和 set表示年份。 |
static int | ZONE_OFFSET get和 set字段编号, get GMT以毫秒为 get的原始偏移量。 |
add(int field, int amount); 调整时间
给定的字段添加指定的值如demo2
注意:添加天数,月份,年等等 该方法会自动计算
图二
输出结果:
java.util.GregorianCalendar[time=1548078976051,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=0,WEEK_OF_YEAR=4,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=21,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=56,SECOND=16,MILLISECOND=51,ZONE_OFFSET=28800000,DST_OFFSET=0]
2019年01月21日
2019年01月23日
set(int field, int value)设置时间
//设置时间
calendar.set(Calendar.YEAR,1000);
calendar.set(Calendar.DAY_OF_MONTH,10);
calendar.set(Calendar.MONTH,100);
System.out.println(getDate(calendar));
输出:1008年5月10日
三,时间类的转换
Calendar 转化 String
Calendar calendar= Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(calendar.getTime());
String 转化Calendar
String str="2019-1-21";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Date 转化String
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
String 转化Date
String str="2019-1-21";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date= sdf.parse(str);
Date 转化Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
Calendar转化Date
Calendar calendar = Calendar.getInstance();
Date date =calendar.getTime();