与时间相关的类:
1.System 类下的currentTimeMillis();
2.Date类:java.util.Date
如何创建其实例;其下的方法:toString()、getTime()
(以及其子类java.sql.Date)
3.SimpleDateFormat类
1.System 类下的currentTimeMillis();
2.Date类:java.util.Date
如何创建其实例;其下的方法:toString()、getTime()
(以及其子类java.sql.Date)
3.SimpleDateFormat类
4.Calendar类
示例代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.junit.Test;
public class TestDate {
//java.util.Date不易于国际化,很多方法已经过时
@Test
public void testDate() {
Date date1 = new Date();
System.out.println(date1);
Date date2 = new Date(4567869898L);
System.out.println(date2);
java.sql.Date date3 = new java.sql.Date(4567869898L);
System.out.println(date3);
}
/*
* java.text.SimpleDateFormat类易于国际化
* 格式化:日期--->文本 使用SimpleDateFormat的format()方法
* 解析:文本--->日期 使用SimpleDateFormat的parse()方法
*/
@Test
public void testSimpleDateFormat() {
//1.默认格式化
SimpleDateFormat sdf1 = new SimpleDateFormat();
String date1 = sdf1.format(new Date());
System.out.println(date1);//15-9-10 上午9:57
//2.自定义格式化:具体参数格式查看API,然后自行编写
SimpleDateFormat sdf2 = new SimpleDateFormat("hh 'o''clock' a, zzzz");
String date2 = sdf2.format(new Date());
System.out.println(date2);//10 o'clock 上午, GMT+08:00
//3.解析
Date date3 = null;
Date date4 = null;
try {
date3 = sdf2.parse("10 o'clock 上午, GMT+08:00");
date4 = sdf2.parse(date2);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date3);
System.out.println(date4);
}
/*
* “三天打渔两天晒网” 1990-01-01 XXXX-XX-XX 打渔?晒网?
*/
//返回date1与date2之间的天数,date1早于date2
public int getDays(String date1, String date2) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse(date1);
Date d2 = sdf.parse(date2);
long milliTime = d2.getTime() - d1.getTime();
return (int)milliTime/1000/3600/24 + 1;//例如:3.5天应该认为是4天
}
@Test
public void testExer() {
String date1 = "1990-01-01";
String date2 = "1990-01-05";
int days = 0;
try {
days = getDays(date1, date2);
} catch (ParseException e) {
e.printStackTrace();
}
if(days % 5 == 0 || days % 5 == 4) {
System.out.println("晒网");
} else {
System.out.println("打渔");
}
}
/*
* 日历:Calendar
* get()/add()/set()/Date getTime()/setTime(Date d)
*/
@Test
public void testCalendar() {
Calendar c = Calendar.getInstance();
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);//10
c.add(Calendar.DAY_OF_MONTH, -2);
day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);//8
c.set(Calendar.DAY_OF_MONTH, 4);
day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);//4
}
}