Date类
package com.company.commonClass04;
/*
获取自1970年1月1日 00时00分00秒 000毫秒 到当前的毫秒数
*/
public class DateTest01 {
public static void main(String[] args) {
long now = System.currentTimeMillis();
System.out.println(now); // 获取自1970年1月1日 00时00分00秒 000毫秒 到当前的毫秒数
}
}
package com.company.commonClass04;
/*
获取系统当前时间
*/
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateTest02 {
public static void main(String[] args) {
//获取系统当前时间
Date nowTime = new Date();
System.out.println(nowTime); //Wed Nov 27 10:40:00 CST 2019
// 以上程序说明java.util.Date 已经重写了Object中的toString方法
// 只不过重写的结果对于中国人将不太容易理解
// 所以引入“格式化”日期
// java.util.Date --> String
/*
日期格式:
y 年
M 月
d 日
H 小时
m 分
s 秒
S 毫秒
...
*/
// 1.创建日期格式化对象
SimpleDateFormat sdf1 = new SimpleDateFormat("yyy年MM月dd日 HH:mm:ss SSS");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyy-MM-dd E HH:mm:ss SSS");
// 2.开始格式化 Date --> String
String strTime1 = sdf1.format(nowTime);
System.out.println(strTime1); // 2019年11月27日 11:11:39 014
String strTime2 = sdf2.format(nowTime);
System.out.println(strTime2); // 2019-11-27 周三 11:11:39 014
}
}
package com.company.commonClass04;
/*
获取特定的日期
*/
import java.text.ParseException;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateTest03 {
public static void main(String[] args){
String strTime = "2008年08月08日 08:08:08 888";
// 将String日期转换成日期类型Date
// String --> Date
// 1.创建日期格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日 HH:mm:ss SSS"); // 【注意】此处格式不能随意写,要和上面字符串格式保持一致
// 2.将字符串转换成日期类型 String --> Data 使用parse()方法
/*
try{
Date t = sdf.parse(strTime);
System.out.println(t); // Fri Aug 08 08:08:08 CST 2008
}catch(ParseException e){
}
//【注意】使用上面方法,由于t是局部变量,所以System.out.println(t);必须要写在里面
而实际开发中可能需要对try{}里面变量进行操作怎么办?
声明全局变量 或者 根据需求声明一个比try{}里面变量作用域大一点的即可
*/
Date t = new Date();
try{
t = sdf.parse(strTime);
}catch(ParseException e){
}
System.out.println(t); // Fri Aug 08 08:08:08 CST 2008
}
}
package com.company.commonClass04;
/*
Date d = new Date(); 获取系统当前时间
Date d = new Date(long mills); mills是自1970-00-00 00:00:00 000的毫秒数
*/
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateTest04 {
public static void main(String[] args) {
// 1000是自1970-00-00 00:00:00 000的毫秒数
Date t1 = new Date(1000);
// Date --> String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
// 北京东八区
System.out.println(sdf.format(t1)); //1970-01-01 08:00:01 000
// 获取当前系统的前10分钟时间
Date t2 = new Date(System.currentTimeMillis() - 10*60*1000);
System.out.println(sdf.format(t2)); //2019-11-27 18:42:50 674
System.out.println(sdf.format(new Date())); //2019-11-27 18:52:50 674
}
}
Calendar类
package com.company.commonClass04;
/*
日历
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest05 {
public static void main(String[] args) throws ParseException {
// 获取系统当前日历
Calendar c = Calendar.getInstance();
// 查看当前日历的“星期几”
int i = c.get(Calendar.DAY_OF_WEEK);
// 或者采用下面这种方式编写,但是还是推荐上面,因为见名知意
// int i = c.get(7);
// 【注】中国的星期日 外国人看做第一天
System.out.println(i); // i输出4 表示星期三
// 获取当前日历的“几号”
System.out.println(c.get(Calendar.DAY_OF_MONTH)); //27日
System.out.println(c.get(Calendar.DAY_OF_YEAR)); //331 本年中的第几天
// 练习:获取2008-08-08是星期几?
// 获取008-08-08的日历
String strTime = "2008-08-08";
/*
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date t = new Date();
try{
t = sdf.parse(strTime);
}catch(ParseException e){
}
*/
// 简写
Date t = new SimpleDateFormat("yyyy-MM-dd").parse(strTime);
c.setTime(t);
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //6 星期五
}
}