import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
java中对于日期的处理
需要掌握:1、怎么获取当前时间(精确到毫秒的系统当前时间)
2、String --->Date
3、Date --->String
*/
public class DateTest01 {
public static void main(String[] args) throws ParseException {
//获取系统的当前时间(精确到毫秒的系统当前时间)
//直接调用构造方法
//需要调包
Date nowTime = new Date();
//java.util.Date类的toString方法已经被重写了
//输出的是一个日期的字符串
System.out.println(nowTime);//Thu Apr 08 13:57:33 CST 2021
//日期可以格式化吗?
//将日期类型Date,按照指定的格式进行转换-->转换为具有一定格式的日期字符串-->String
//SimpleDateFormat是java.txt包下的,专门负责日期格式化的
/*
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");
String nowTimeStr = sdf.format(nowTime);
System.out.println(nowTimeStr);
//Thu Apr 08 14:12:39 CST 2021
//2021-04-08 14-12-39 887
//假设有一个日期字符串String,怎么转换成Date类型?
String time = "2021-04-08 08-08-08 888";
//SimpleDateFormat sdf = new SimpleDateFormat("格式不能随便写,要和日期字符串类型相同");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss SSS");
Date datetime = sdf2.parse(time);
System.out.println(datetime);
//Thu Apr 08 08:08:08 CST 2021
}
}
/*
获取自1970年1月1日 00:00:00 000 到当前系统时间的总毫秒数
总结一下System类的相关属性和方法:
System.out [out是System类的静态变量。]
System.out.println() [println()不是System类的,是PrintStream类的方法。]
System.gc()建议启动垃圾回收器
System.currentTimeMillis()获取自1970年1月1日 00:00:00 000 到当前系统时间的总毫秒数
System.exit(0)退出JVM
*/
public class DateTest02 {
public static void main(String[] args) {
long newTimeMillis = System.currentTimeMillis();
System.out.println(newTimeMillis);//1617863311186
long begin = System.currentTimeMillis();
print();
long end = System.currentTimeMillis();
System.out.println("耗时"+(end-begin)+"毫秒");
//耗时440毫秒
}
//需求:统计一下方法执行的时间
public static void print(){
for (int i = 0; i < 100000; i++) {
System.out.println("i的值是"+ i );
}
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest03 {
public static void main(String[] args) {
//怎么获得昨天此时的时间
//先了解一下下面的方法
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);
//1970-01-01 08:00:00 001
//Date(毫秒) 表示1970年1月1日 00:00:00 000后面1毫秒的时间
//那么怎么获取昨天此时的时间呢?
Date time1 = new Date(System.currentTimeMillis() - 24*60*60*1000);
String strTime1 = sdf.format(time1);
System.out.println(strTime1);
//2021-04-07 14:51:03 391
}
}