类 Date
年份 y 由整数 y - 1900 表示。月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
日期(一月中的某天)按通常方式由整数 1 至 31 表示。
小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
分钟按通常方式由 0 至 59 的整数表示。
秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。
date - 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数
毫秒值 转换 日期对象
1,通过date对象的构造方法 new Date(timemillie);
2,通过SetTime设置。
因为可以通过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