import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.junit.Test;
public class csdnDemo {
/**
* Java中的时间使用标准类库的Date类表示,使用距离一个固定时间点的毫秒数
* (可正可负,Long类型)表达一个特定的时间点
* 固定的时间点叫纪元,是UTC时间1970年1月1日00:00:00
* UTC与GMT一样,是一种具有实际目的的科学标准时间
*/
@Test
public void test01(){
Date date = new Date();//系统当前的提起及时间信息
System.out.println(date);
long time = date.getTime();
System.out.println(time);//从1970年1月1日至今的毫秒数
time += 60 * 60 * 24 * 1000;//增加一天所经历的毫秒数
date.setTime(time);
System.out.println(date);//输出明天此时此刻的日期和时间
}
/**
* Date重写了toString()方法,用一个字符串来描述当前Date对象所表示
* 的时间。格式如下:Mon Feb 17 15:36:55 CST 2014
*/
/**
* java.text.SimpleDateFormat是一个以与语言环境有关的方式来格式
* 化和解析日期的具体类。它允许进行格式化(日期->文本)、解析(文本 -> 日期)
* 和规范化
* 构造器
* SimpleDateFormat()
* SimpleDateFormat(String pattern)用给定的模式和默认语言环境
* 的日期格式符号构造SimpleDateFormat
*/
/**日期格式化*/
@Test
public void test02(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String dateStr = sdf.format(date);
System.out.println(dateStr);
}
/**将String解析为Date
* @throws ParseException */
@Test
public void test03() throws ParseException{
String str = "2013-12-25";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);
}
/**
* Calendar提供了一个类方法getInstance,以获得此类型的一个通用对象;
* Calendar的getInstance方法返回一个Calendar对象,其日历字段已
* 由当前日期和时间初始化
*/
/**使用Calendar及子类获取时间*/
@Test
public void test04(){
Calendar c = Calendar.getInstance();
System.out.println(c.getClass().getName());//输出Calendar对象所属的实际类型
System.out.println(c.getTime());//getTime方法返回对应的Date对象
GregorianCalendar c1 = new GregorianCalendar(2013,Calendar.DECEMBER,25);
//创建GregorianCalendar对象
System.out.println(c1.getTime());
}
/**设置日期及分量*/
@Test
public void test05(){
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2014);//设置年份为2014年
c.set(Calendar.MONTH, Calendar.DECEMBER);//设置月份为12月
c.set(Calendar.DATE, 25);//设置号为25号
System.out.println(c.getTime());
//Thu Dec 25 16:02:08 CST 2014
c.set(Calendar.DATE, 32);//设置号位32号,自动进一位
System.out.println(c.getTime());
//Thu Jan 01 16:02:08 CST 2015
}
/**获取日期及时间分量*/
@Test
public void test06(){
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2014);//设置年份为2014年
c.set(Calendar.MONTH, Calendar.DECEMBER);//设置月份为12月
c.set(Calendar.DATE, 25);//设置号为25号
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
//输出为5,表示周四,周日为每周的第一天
}
/**add方法:输出一年后再减去3个月的日期*/
@Test
public void test07(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1);//加一年
calendar.add(Calendar.MONTH, -3);//减三个月
System.out.println("year:" + calendar.get(Calendar.YEAR));//输出year:2020
System.out.println("month:" + (calendar.get(Calendar.MONTH)+1));//输出month:1
System.out.println("year:" + calendar.get(Calendar.DAY_OF_MONTH));//输出year:30
}
}