表现形式:
1.Long类型的时间:
获取1970到当前时间的毫秒数
Long long = System.currentTimeMillis();
2.Date类型的时间:
Date date = new Date();
3.Calendar类型的时间(格林威治时间):
(1)Calendar是一个抽象类,需要通过其子类来创建对象:
Calendar cal = new GergorianCalendar();
(2)使用静态工厂来创建对象:
Calendar cal = Calendar.getInstance();
(3)设置、修改日期
get():获取
set():设置
add():调整
roll():指定字段进行调整
4.日期格式化:SimpleDateFormat
格式化时间:
y: 年 yyyy: 四位年显示
M:月 MM:两位月显示
d:日 dd: 两位天显示
a:上午/下午
E:星期
H:时 HH:两位时显示
m:分 mm:两位分显示
s:秒 ss:两位秒显示
(1)字符串——>Date
String str = "2018-08-18 18:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//将字符串解析为日期格式: sdf.parse(str);
try{
Date date = sdf.parse(str);
System.out.println(date);
}catch(ParseException e){
e.printStackTrace();
}
(2)Date——>字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//将日期转为字符串格式:sdf.format(date);
String str = sdf.format(date);
(3)时区
TimeZone zone = TimeZone.getTimeZone("GMT-8");//东八区时间(北京时间)
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(zone);
System.out.println(sdf.format(date));
5.定时器:
timer.schedule(要执行的任务,第一次执行任务要等待的时间,每隔多长时间执行一次);
Timer timer = new Timer(); timer.schedule(new TimerTask() {
@Override
public void run() {
Date date5 = new Date();//将日期类型格式化输出(date--->String)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//date--->String
String str1 = sdf.format(date5);
System.out.println(str1);
} }, 5000, 1000);//运行程序5s中之后执行第一次,接着每隔1s执行一次
6.三种类型时间的转换:
Long–>Date–>Calendar
long l = System.currentTimeMillis();
//Long-Date
Date date6 = new Date(l);
//Date-Calendar
Calendar c = new GregorianCalendar();
c.setTime(date6);
Calendar–>Date–>Long
Calendar c1 = new GregorianCalendar();
Date date7 = c1.getTime();
//Date---Long
Long l1 = date7.getTime();
2013年蓝桥A组题A:
/**
* 2013A组题一:
*
* 世纪末的星期:
*
* 曾有邪教称1999年12月31日是世界末日
* 还有人称今后的某个世纪末的12月31日,如果是星期一则会。。。
* 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一
* 于是,“谣言制造商”有修改为星期日。。。
*
* 1999年的12月31日是星期五,请问:
* 未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期五(即星期日)?
*
* 请回答该年份(只写这个4位整数,不要写12月31日等多余信息
*
*/
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
for(int year=1999; ;year+=100) {
ca.set(Calendar.YEAR , year);
ca.set(Calendar.MONTH , 11); //12月
ca.set(Calendar.DAY_OF_MONTH , 31);
System.out.println(year+" "+ca.get(Calendar.DAY_OF_WEEK));
if(ca.get(Calendar.DAY_OF_WEEK) == 1) { //1为Sunday
System.out.println(year);
break;
}
}
}