Java中对日期的处理
? 这个案例主要掌握:
???? 1.怎么获取系统当前时间
???? 2.String-->Date
???? 3.Date-->String
Import java.text.SimpleDateFormat;
Import java.util.Date;
?public class DateTest01{
?? public static void main(String[] args) throws Exception{
????? //获取系统当前时间(精确到毫秒的系统当前时间)
???? //直接调用无参数构造方法就行
??? Date nowTime = new Date();
?? //java.util.Date类的toString()方法已经被重写了
? //输出的应该不是一个对象的内存地址,应该是一个日期字符串
? //System.out.println(nowTime);
?//日期可以格式化吗?
?//将日期类型Date,按照指定的格式进行转换:Date? 转换成具有一个格式的日期字符串? String
//SimpleDateFormat是java.text包下的。专门负责日期格式化的
/*
?yyyy? 年? (年是4位)
MM 月?? (月是2位)
?dd??? 日??????
?HH 时
?mm 分
?ss??? 秒
?sss 毫秒(毫秒是3位,最高999,1000毫秒等于1秒)
?注意:在日期格式中,除了 y M d H? m s S这些字符不能随便写之外,剩下的符号格式自已随意组织
*/
?SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
?//SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS");
?//SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm:ss SSS");
?String nowTimeStr = sdf.format(nowTime);
?System.out.println(nowTimeStr);
?//假设现在有一个日期字符串String,怎么转换成Date类型?
//String-->Date
? String time = "2018-08-08 08:08:08 888";
? //SimpleDateFormat sdf2 = new SimpleDateFormat("格式不能随便写,要和日期字符串格式相同”);
//注意:字符串的日期格式和SimpleDateFormat对象指定的日期格式要一致,不然会出现异常:java.text.ParseException
??? SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
??? Date dateTime = sdf2.parese(time);
??? System.out.println(dateTime);
?}
}
1秒=1000毫秒
?public class DateTest02{
??? public static void mian(String[] args){
?????? //获取自1970年1月1日00:00:00 000到当前系统时间的总毫秒数
?????? long nowTimeMillis = System.currentTimeMillis();
?????? System.out.println(nowTimeMillis);
?
?????? //统计一个方法耗时
????? //在调用目标方法之前记录一个毫秒数
????? long begin = System.currentTimeMillis();
????? print();
????? //在执行完目标方法之后记录一个毫秒数
????? long end =? System.currentTimeMillis();
????? System.out..println("耗费时长"+(end-begin)+"毫秒");
???? }
??? //需求:统一一个方法执行所耗费的时长
??? public static void print(){
?????? for(int i=0;i<1000;i++){
????????? System.out.println("i="+i);
?????? }
??? }
?}
简单总结一下System类的相关属相和方法
? System.out? 【out是System类的静态变量】
? System.out.println() 【println()方法不是System类的,是PrintStream类的方法】
? System.gc() 建议启动垃圾回收器
? System.currentTimeMillis() 获取自1970年1月1日到系统当前时间的总毫秒数
? System.exit(0)? 退出JVM
?import java.text.SimpleDateFormat;
? import java.util.Date;
?? public class DateTest03{
????? public static void main(String[] args){
??????? //这个时间是什么时间?
?????? //1970-01-01 00:00:00 001
?????? Date time = new Date(1);? //注意:参数是一个毫秒
?????? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
?????? String strTime = sdf.format(time);
?????? System.out.println(strTime);
?????
????? //获取昨天此时的时间
??? Date time2 = new Date(System.currentTimeMills()-1000*60*60*24);
??? String strTime2 = sdf.format(time2);
??? System.out.println(strTime2);
????? }
}