Date 类中有很多方法都过期了,推荐使用Calenddar操作日期。
下面列出了常用的时间处理例子
package test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.junit.Before;
import org.junit.Test;
public class ClendarDemo {
Calendar calendar = null;
@Before
public void test() {
calendar = Calendar.getInstance();
}
@Test
public void test1() {
// 获取年
int year = calendar.get(Calendar.YEAR);
// 获取月, 需要 + 1
int month = calendar.get(Calendar.MONDAY) + 1;
// 获取日
int day = calendar.get(Calendar.DAY_OF_MONTH); // 一个月的第几天
// int day = calendar.get(Calendar.DAY_OF_WEEK); // 星期的第几天,周日开始算
// int day = calendar.get(Calendar.DAY_OF_YEAR); // 一年当中的第几天
// 获取小时
int hour = calendar.get(Calendar.HOUR);
// 获取分
int minute = calendar.get(Calendar.MINUTE);
// 获取秒
int second = calendar.get(Calendar.SECOND);
// 获取星期 需要 - 1
int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;
System.out.printf("今天是%d年%d月%d日 %d点%d分%d秒 星"
+ "期:%d", year, month, day, hour, minute, second, weekday);
}
// 一年后的今天
@Test
public void test2() {
// calendar.add(Calendar.YEAR, 1); // 明年
// calendar.add(Calendar.MONTH, 1); //下个月
// calendar.add(Calendar.DAY_OF_MONTH, 1); // 明天
// 获取年
int year = calendar.get(Calendar.YEAR);
// 获取月
int month = calendar.get(Calendar.MONTH) + 1;
// 获取日
int day = calendar.get(Calendar.DATE);
System.out.printf("今天是%d年%d月%d日\n", year, month, day);
}
// 获取2018年9月的最后一天
@Test
public void test3() {
// 求6月的最后一天
int currentMonth = 6;
// 指定日期, 7月1日, 6代表的是实际月份的7月
calendar.set(calendar.get(Calendar.YEAR), currentMonth, 1);
System.out.println(calendar.get(Calendar.MONTH) + 1);
calendar.add(Calendar.DATE, -1);
System.out.println(calendar.get(Calendar.DATE));
}
/**
* Calendar、String、Date 的相互转换
*/
// Calendar >> String
@Test
public void test4() {
// Calendar 转 String
SimpleDateFormat fromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = fromat.format(calendar.getTime());
System.out.println(dateStr);
}
// Calendar >> Date
@Test
public void test5() {
// 获取当前的Date对象
Date date = calendar.getTime();
System.out.println(date);
}
// Date >> String
@Test
public void test6() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());
System.out.println(dateStr);
}
// Date >> Calendar
@Test
public void test7() {
calendar.setTime(new Date());
System.out.println(calendar);
}
// Stirng >> Date >> Calendar
@Test
public void test8() {
String str = "2014-6-6";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
calendar.setTime(date);
System.out.println(calendar);
}
}