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);
}
}