类 Date
年份 y 由整数 y - 1900 表示。秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。
date - 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数
因为可以通过Date对象的方法对改日期中的各个字段(年月日)进行操作。
日期对象 转换 毫秒值
1,getTime方法。
因为可以通过具体的数值进行运算。
public static void main(String[] args) { // TODO Auto-generated method stub Date date=new Date(); System.out.println(date.getTime()); SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sf.format(new Date(date.getTime()))); System.out.println(sf.format(date.getTime())); }
日期格式化:
日期对象转换日期格式化字符串:使用是DateFormat类中的format方法。
//获取日期格式对象,具体默认风格。full long制定风格。
//对日期格式自定义如何解决。
将日期格式的字符串 转换日期对象;
使用的是DateFormat类中的parse()方法。
类 SimpleDateFormat
字母 日期或时间元素 表示 示例
G Era 标志符 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
日期和时间模式 结果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
练习 两个日期相差天数
package TimeTest; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTEXT { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub String strdate1 = "2016-7-8"; String strdate2 = "2016-5-8"; test(strdate1, strdate2); } public static void test(String strdate1, String strdate2) throws ParseException { DateFormat dateformat=DateFormat.getDateInstance(); dateformat=new SimpleDateFormat("yyy-MM-dd"); Date date1=dateformat.parse(strdate1); Date date2=dateformat.parse(strdate2); long time=Math.abs(date1.getTime()-date2.getTime()); int day=(int)(time/1000/60/60/24); System.out.println(day); } }
calendar类
时间的读取
C.set(2016,5,28);
增加 几年几月几天 c.add(Calender.DAY-OF-MONTH,12)
package Time.Test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class XiaoMing { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); Date d1=new Date(); long dd=(20*86400000); long d2=(d1.getTime()+(dd+dd)); long d3=(d1.getTime()+40*86400000l); System.out.println(d1.getTime()); System.out.println(sf.format(d1.getTime())); System.out.println(sf.format(d2)); System.out.println(sf.format(d3)); System.out.println(); Date today=new Date(); Calendar c=Calendar.getInstance(); //抽象类 c.setTime(today); c.add(Calendar.DAY_OF_MONTH,40); SimpleDateFormat sf1=new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sf1.format(today)); System.out.println(sf1.format(c.getTime())); } }
作者:冲天之峰 20160528