JAVA时间日期学习笔记

类 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制定风格。
JAVA时间日期学习笔记_第1张图片

//对日期格式自定义如何解决。


将日期格式的字符串  转换日期对象;
使用的是DateFormat类中的parse()方法。

JAVA时间日期学习笔记_第2张图片



类 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);
	}
}

JAVA时间日期学习笔记_第3张图片

calendar类

时间的读取

JAVA时间日期学习笔记_第4张图片
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()));
		
	}

}
JAVA时间日期学习笔记_第5张图片


作者:冲天之峰                      20160528

你可能感兴趣的:(java,时间,calendar,日历,时间日期格式转换)