Date&Calendar&SimpleDateFormat

Date:

Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为epoch。在后文中如果没有明确说明,毫秒数就是指从1970年到对应时间的毫秒数。在Java 的Date类内部其实也是一个毫秒数,对外表现为一个Date对象。

常用的构造方法:
Date( )
Date(long date)

常用的方法:

boolean after(Date date) 如果调用Date对象包含或晚于指定的日期则返回true,否则,返回false。
boolean before(Date date)如果调用Date对象包含或早于日期指定的日期返回true,否则,返回false。
int compareTo(Date date)比较日期的调用对象的值。如果这两个值相等返回0。如果调用对象是早于日期返回一个负值。如果调用对象最迟日期返回正值。
int compareTo(Object obj)操作以相同的compareTo(Date) 如果obj是一个类日期。否则,它会抛出一个ClassCastException。
long getTime( )返回自1970年1月1日起已经过的毫秒数。
void setTime(long time)设置所指定的时间,这表示经过时间以毫秒为单位,1970年1月1日从午夜的时间和日期

Calendar:

Calendar本身是一个抽象类,不能直接实例化,但是Calendar类提供一个工厂方法,即getInstance来创建一个Calendar实例,它实际运行时使用的是java.util.GregorianCalendar。它通过setTime()设定一个Calendar内部的毫秒数,之后就可以对这个毫秒数进行分析,进而得到它的年月日信息。同时,我们也可以对Calendar直接设定年月日属性,从而获取对应的Date对象。

 这里是由GregorianCalendar类提供一些有用的支持方法的列表:

void add(int field, int amount) 添加指定(有符号的)时间量,以给定的时间字段,基于日历的规则。
protected void computeFields() 将UTC转换为毫秒时间字段值.
protected void computeTime() 覆盖日历转换时间域值为UTC的毫秒.
int get(int field) 获取给定时间域的值.
int getActualMaximum(int field) 返回该字段可能的最大值,考虑到当前的日期.
int getActualMinimum(int field) 返回该字段可以具有的最低值,给定当前的日期.
int getGreatestMinimum(int field) 对于给定的字段中返回高最低值(如果有变化).
Date getGregorianChange() 获取公历更改日期.
int getLeastMaximum(int field) 对于给定的字段返回最低的最大值(如果有变化).
int getMaximum(int field) 返回给定字段中的最大值.
Date getTime()获取日历的当前时间.
 long getTimeInMillis() 获取日历的当前时间长.
TimeZone getTimeZone() 获取时区.
int getMinimum(int field) 返回给定字段中的最小值.
boolean isLeapYear(int year)确定给定年份是闰年.
void roll(int field, boolean up) 加上或减去(上/下)的时间在给定的时间字段一个单元,不更改更大的字段.
void set(int field, int value) 设置时间字段与给定值.
void set(int year, int month, int date) 设置为年,月,日的值.
void set(int year, int month, int date, int hour, int minute) 设置为年,月,日,小时和分钟值.
void set(int year, int month, int date, int hour, int minute, int second) 设置为字段的年,月,日,小时,分钟和秒的值.
void setGregorianChange(Date date) 设置GregorianCalendar更改日期.
void setTime(Date date) 设置日历的当前时间与给定日期.
void setTimeInMillis(long millis) 从给定long值设置日历的当前时间.
void setTimeZone(TimeZone value)将时区设置与给定的时区值.
String toString() 返回此日历的字符串表示形式.

SimpleDateFormat:

一、构造方法:
SimpleDateFormat()//构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。  
SimpleDateFormat(String pattern)  //例:SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

G 纪年 Text AD 
y 年 Year 1996; 96 
M 年中的月份 Month July; Jul; 07 
w 年中的周数 Number 27 
W 月份中的周数 Number 2 
D 年中的天数 Number 189 
d 月份中的天数 Number 10 
F 月份中的星期 Number 2 
E 星期中的天数 Text Tuesday; Tue 
a Am/pm 标记 Text PM 
H 一天中的小时数(0-23) Number 0 
k 一天中的小时数(1-24) Number 24 
K am/pm 中的小时数(0-11) Number 0 
h am/pm 中的小时数(1-12) Number 12 
m 小时中的分钟数 Number 30 
s 分钟中的秒数 Number 55 
S 毫秒数 Number 978 
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 
Z 时区 RFC 822 time zone -0800

二、常用的两个方法:
Date parse(String source);//例:Date date = sdf.parse("2018-08-30");无法解析时报java.text.ParseException异常。
String format(Date date);//String dateStr=sdf.format(new Date());

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值