黑马程序员——java中的时间日期
来源:互联网 发布:淘宝网页版登录入口 编辑:程序博客网 时间:2024/05/19 02:43
------- android培训、java培训、期待与您交流! ----------
一 ,时间日期
1) Java中的时间类有:Date和Calendar
2) Java中时间类的本质
Date = long + 操作
Calendar = long + 操作
3) 时间的标准有两种
(1970)GMT long
(0)UTC long
4) java 中基本的时间表示 GMT long
5) Java提供了Date类型表示时间和日期
Date 是long类型的包装
6) Calendar 是历法的的抽象
历法:公历、农历、太阳历 ...
7 ) GregorianCalendar 是历法的实现,采用公历(太阳历)算法实现的
Calender cal = Calender.getInstance();
8) Date 和 Calendar 的默认值就是系统当前时间
1.1. Java中表示时间的方式
【案例】long、Date、Calendar演示
1.2. 时间的类型转换
now表示当前时间
【案例】时间类型转换
1.3. 日期的输入与输出
1) 日期输出的本质是将Date转换为格式化的String
2) 日期输入的本质是将格式化的String转换为Date
3) java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
日期的输入与输出
日期输出的本质是 Date 转换为格式化的String 日期输入的本质是 将格式化的String转换为Date java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
构建SimpleDateFormat 一般提供日期的格式"yyyy-MM-dd" 具体参看 javadoc
如: "yyyy-MM-dd HH:mm:ss"
"yyyyMMdd" "dd/MM/yyyy" "MM/dd/yyyy"
fmt.parse(String)可以实现将(合法)字符串解析为日期类型, 经常用于处理日期输入
fmt.format(Date)可以把日期格式化为字符串用于输出处理
日期的输入与输出
案例 商品促销日期计算
运行结果:
促销日期:2013-07-19
2) Java中时间类的本质
Date = long + 操作
Calendar = long + 操作
3) 时间的标准有两种
(1970)GMT long
(0)UTC long
4) java 中基本的时间表示 GMT long
5) Java提供了Date类型表示时间和日期
Date 是long类型的包装
6) Calendar 是历法的的抽象
历法:公历、农历、太阳历 ...
7 ) GregorianCalendar 是历法的实现,采用公历(太阳历)算法实现的
Calender cal = Calender.getInstance();
8) Date 和 Calendar 的默认值就是系统当前时间
1.1. Java中表示时间的方式
【案例】long、Date、Calendar演示
package bbs.itheima.com;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class LongDemo { public static void main(String[] args){// 从格林威治时间到当前系统时间的毫秒数 long now = System.currentTimeMillis();// 计算现在的年份(不考虑轮年) long year = 1970+now/1000/60/60/24/365; System.out.println(year);//2013 // 当前时间(公历) Date date = new Date(now); int y = date.getYear()+1900; System.out.println("y="+y);//2013 System.out.println(date);//Sat Apr 13 22:38:29 CST 2013 // Calendar抽象历法// GregorianCalendar 格里高历(公元历法)// GregorianCalendar =GMT long+公历算法 Calendar cal = new GregorianCalendar(); Date date2 = new Date(); System.out.println(date2);//Sat Apr 13 23:09:09 CST 2013 System.out.println( (date2.getYear()+1900)+"," +(date2.getMonth()+1));//2013,4 // Calendar 没有千年虫问题,不用加“偏移量”1900, Calendar date3 = new GregorianCalendar(1970, Calendar.JANUARY,1); System.out.println((date3.get(Calendar.YEAR)+","+ (date3.get(Calendar.MONTH)+1)));//1970,1 } }
1.2. 时间的类型转换
now表示当前时间
【案例】时间类型转换
package bbs.itheima.com;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/**时间类型转换*/public class DateConvertDemo {public static void main(String[] args) {//演示long->Date->Calendar//GMT 原点 ,1970.1.1 0:0:0long time = 0;//现在时间Date date = new Date();System.out.println(date);//Sat Apr 13 23:22:03 CST 2013//long->Date,更改time的时间为(1970.1.1 0:0:0)date.setTime(time);//会出现懂八区现象(多8个小时)System.out.println(date);//Thu Jan 01 08:00:00 CST 1970//现在时间Calendar cal = new GregorianCalendar();System.out.println(cal);//Date->Calendar 更该为time的时间cal.setTime(date);cal.add(Calendar.DAY_OF_YEAR, -1); //演示 Calendar->Date->long// 一天的毫秒数 86400000System.out.println(1000*60*60*24);// Calendar->DateDate d = cal.getTime();System.out.println(d);//Wed Dec 31 08:00:00 CST 1969//Date->longlong l = d.getTime();System.out.println("l="+l);//l=-86400000}}
1.3. 日期的输入与输出
1) 日期输出的本质是将Date转换为格式化的String
2) 日期输入的本质是将格式化的String转换为Date
3) java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
日期的输入与输出
日期输出的本质是 Date 转换为格式化的String 日期输入的本质是 将格式化的String转换为Date java.text.SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
构建SimpleDateFormat 一般提供日期的格式"yyyy-MM-dd" 具体参看 javadoc
如: "yyyy-MM-dd HH:mm:ss"
"yyyyMMdd" "dd/MM/yyyy" "MM/dd/yyyy"
fmt.parse(String)可以实现将(合法)字符串解析为日期类型, 经常用于处理日期输入
fmt.format(Date)可以把日期格式化为字符串用于输出处理
日期的输入与输出
案例 商品促销日期计算
package bbs.itheima.com;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/**商品促销日期计算*/public class PrDateDemo {public static void main(String[] args) throws Exception {String d = "2013-05-01";SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");Date date = fmt.parse(d);Date spec = specialDay(date,3);String s = fmt.format(spec);System.out.println("促销日期:"+s); } public static Date specialDay(Date proc,int exp){ Calendar cal = new GregorianCalendar(); cal.setTime(proc); cal.add(Calendar.MONTH, exp); cal.add(Calendar.WEEK_OF_YEAR,-2); cal.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY); return cal.getTime(); }}
运行结果:
促销日期:2013-07-19
- 黑马程序员——java中的时间日期
- 黑马程序员——JAVA日期类型转换
- 黑马程序员——java学习笔记--日期操作类
- 黑马程序员——java中的流
- 黑马程序员——java中的线程
- 黑马程序员——java中的网络
- 黑马程序员——java中的 GUI
- 黑马程序员——JAVA中的字符串
- 黑马程序员——Java中的ShutdownHook
- 黑马程序员——Java中的反射
- 黑马程序员——java中的反射
- 黑马程序员——java中的多线程
- 黑马程序员——java中的同步
- 黑马程序员——java中的多线程
- 黑马程序员——java中的反射
- 黑马程序员——java中的异常
- 黑马程序员——java中的集合
- 黑马程序员——Java中的GUI
- 孙子兵法之九变篇
- FineReport中调用Oracle存储过程
- http请求响应模型
- 在网上请不要惹一个程序员
- 孙子兵法之行军篇
- 黑马程序员——java中的时间日期
- 深入剖析C#的多态
- 如何一步一步推导出Y Combinator
- Uva 412 - Pi
- 孙子兵法之地形篇
- 【leetcode】Palindrome Partitioning
- Uva 406 - Prime Cuts
- 孙子兵法之九地篇
- 第一篇