Java核心类库 - 时间Date和Calendar
2015-01-15 15:46
148 查看
时间日期
1)java中的时间类有:Date和Calendar
2)java中时间类的本质 long(毫秒数)
Date = long +历法算法(方法gerYear())
Calendar = long +历法算法(方法ger())
3) 时间的标准有两种
(1970)GMT long
(0)UTC long
4) java中基本的时间表示GMT long
5) java提供了Date类型表示时间和日期
Date 是long 类型的包装
6) Calendar 是历法的抽象
历法:公历,农历,太阳历
7) GregorianCalendar是历法的实现,采用公历的算法实现的
Calendar cal = Calendar.getInstance();
Calendar cal = new GregorianCalendar();//除了日本和泰国,效果等同于上一句
8) Date和 Calendar的默认值就是系统当前时间
一 java中表示时间的方式:
1) 格林威治时间(GMT):1970年1月1日 00:00:00(注:中国是东八区,所以要+8个小时)
也就是1970年1月1日 08:00:00
2 )公元元年(UTC): 0年
3 )目前java中3种日期表达方式long, Date , Calendar都在用
?
二 时间类型转换
long <-> Date <-> Calendar
long
--->Date : dat = new Date(l)
dat.setTime(l)
Date
--->Calendar : cal.setTime(dat)
Calendar ---> Date: cal.getTime()
Date ---> long :dat.getTime()
注:Date dat , long l ,Calendar cal
例子
?
三 时间的输入与输出
1) 日期输出的本质是将Date转换为格式化的String
2) 日期输入的本质是将格式化的 String转换为 Date
3) SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
构建SimpleDateFormat 一般提供日期的格式"yyyy-MM-dd"具体参看javadoc
如:"yyyy-MM-dd HH:mm:ss"
"yyyyMMdd"
"dd/MM/yy"
"MM/dd/yyyy"
常用方法
fmt.parse(String) 可以实现将(合法)字符串解析为日期类型,经常用于处理日期输入
fmt.format(Date) 可以把日期格式化为字符串用于输出处理
使用字符串String输出时间
Date ---> String:
DateFormat fmt = new SimpleDateFormat("HH:mm:ss");
fmt.format(date)
把字符串String时间转为Date时间(个是必须相同)
String --> Date :
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
fmt.parse("1999-2-2")
注:java没有提供String直接转换为Calendar的API方法,但第三方提供的API有这种方法
如果Calendar需要转为String,必须先转换为Date
Calendar ----> Date :
Date dat = cal.getTime();
例子
?
四 时间的计算
时间计算的问题
1) 本质是时间毫秒数的计算
2) 简单时间计算,直接计算毫秒数,如:3天以后,2小时等
3) 复杂时间计算,利用Calender类提供的历法算法实现
常用方法:
add() set()
Calendar 提供的方法本是上也是计算毫秒数,
?
1)java中的时间类有:Date和Calendar
2)java中时间类的本质 long(毫秒数)
Date = long +历法算法(方法gerYear())
Calendar = long +历法算法(方法ger())
3) 时间的标准有两种
(1970)GMT long
(0)UTC long
4) java中基本的时间表示GMT long
5) java提供了Date类型表示时间和日期
Date 是long 类型的包装
6) Calendar 是历法的抽象
历法:公历,农历,太阳历
7) GregorianCalendar是历法的实现,采用公历的算法实现的
Calendar cal = Calendar.getInstance();
Calendar cal = new GregorianCalendar();//除了日本和泰国,效果等同于上一句
8) Date和 Calendar的默认值就是系统当前时间
一 java中表示时间的方式:
1) 格林威治时间(GMT):1970年1月1日 00:00:00(注:中国是东八区,所以要+8个小时)
也就是1970年1月1日 08:00:00
2 )公元元年(UTC): 0年
3 )目前java中3种日期表达方式long, Date , Calendar都在用
?
long <-> Date <-> Calendar
long
--->Date : dat = new Date(l)
dat.setTime(l)
Date
--->Calendar : cal.setTime(dat)
Calendar ---> Date: cal.getTime()
Date ---> long :dat.getTime()
注:Date dat , long l ,Calendar cal
例子
?
1) 日期输出的本质是将Date转换为格式化的String
2) 日期输入的本质是将格式化的 String转换为 Date
3) SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
构建SimpleDateFormat 一般提供日期的格式"yyyy-MM-dd"具体参看javadoc
如:"yyyy-MM-dd HH:mm:ss"
"yyyyMMdd"
"dd/MM/yy"
"MM/dd/yyyy"
常用方法
fmt.parse(String) 可以实现将(合法)字符串解析为日期类型,经常用于处理日期输入
fmt.format(Date) 可以把日期格式化为字符串用于输出处理
使用字符串String输出时间
Date ---> String:
DateFormat fmt = new SimpleDateFormat("HH:mm:ss");
fmt.format(date)
把字符串String时间转为Date时间(个是必须相同)
String --> Date :
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
fmt.parse("1999-2-2")
注:java没有提供String直接转换为Calendar的API方法,但第三方提供的API有这种方法
如果Calendar需要转为String,必须先转换为Date
Calendar ----> Date :
Date dat = cal.getTime();
例子
?
时间计算的问题
1) 本质是时间毫秒数的计算
2) 简单时间计算,直接计算毫秒数,如:3天以后,2小时等
3) 复杂时间计算,利用Calender类提供的历法算法实现
常用方法:
add() set()
Calendar 提供的方法本是上也是计算毫秒数,
?
相关文章推荐
- Java核心类库——时间Date和Calendar
- Java常用类库之时间操作类——Date、Calendar、DateFormat、SimpleDateFormat及实例操作
- Java常用类库——时间处理类Date、Calendar、GregorianCalendar以及日期格式化和计算
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(4) DateFormat
- java常用类库续1(日期操作类Date、Calendar、DateFormat、SimpleDateFormat、Math与Random类)
- 【Java常用类库】_日期操作类(Date、Calendar)笔记
- 【Java常用类库】_日期操作类(Date、Calendar)笔记
- java获得当前时间的前一天时间及Calendar 与 Date 的转换
- android:java_中常用时间类:date,_simpledateformat,_calendar
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(6) Locale
- java常用类库续1(日期操作类Date、Calendar、DateFormat、SimpleDateFormat、Math与Random类)
- 时间和日历类的设计(Java的Date和Calendar的C++实现)
- java Calendar DateFormat 时间 日期 月份 格式化 第一天 最后一天
- Java时间日期处理——Date和Calendar
- Java 时间--Date,SimpleDateFormat,Calendar
- java中如何设置准确的时间,不要用Date,而要用Calendar
- 时间和日历类的设计(Java的Date和Calendar的C++实现)
- Java中Calendar的一些简单操作 及 JS中获取当前时间前一天时间(js中时间Date操作)
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar
- Java时间日期处理——Date和Calendar