/** * Date类是java.util包下的,需要掌握两个方法: * - Date newTime = new Date(); //该方法的功能是:获取系统当前时间(精确到毫秒) * - Date time = new Date(long date); * 说明:1、该方法的参数是一个long类型的数据(毫秒数),表示:以1970-01-01 00:00:000为计时起点的毫秒数。 * 2、通过该方法获取的是:从1970年1月1日0时0分0秒000毫秒算起date毫秒后的日期 * * 另外需要掌握的两个方法是: * 1、SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 指定日期输出格式 * 说明:括号中的参数是程序员指定的日期输出格式: * - yyyy 年 * - MM 月 * - dd 日 * - HH 时 * - mm 分 * - ss 秒 * - SSS 毫秒 * 2、long nowTimeMillis = System.currentTimeMillis(); 获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数 * * 简单总结以下System类的相关属性和方法: * - System.out [out 是System类的静态变量] * - System.out.println()打印输出;【println()方法不是System类的,是PrintStream类的方法】 * - System.gc()建议启动垃圾回收器 * - System.exit(0)退出JVM * - System.currentTimeMillis()获取自1970年1月1日0时0分0秒000毫秒到系统当前时间的总毫秒数 */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateText { public static void main(String[] args) throws ParseException { // 获取系统当前时间(精确到毫秒) Date newTime = new Date(); System.out.println(newTime);//Sat Dec 10 08:13:16 CST 2022 // 指定日期输出格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); // 将当前时间按照指定格式输出 String newTimeStr = sdf.format(newTime); System.out.println(newTimeStr);//2022-12-10 08:13:16 776 // 以上代码是将Date------>String // 下面我们将String------>Date // 假设有一个日期型字符串,将它转换成Date类型 String time = "2008-08-08 08:08:08 888"; // 需要注意:SimpleDateFormat的解析格式必须与日期型字符串的格式相同,否则会出现异常:java.text.parseException SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); Date date = sdf1.parse(time); System.out.println(date);//Fri Aug 08 08:08:08 CST 2008 // 获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数 long nowTimeMillis = System.currentTimeMillis(); System.out.println(nowTimeMillis); // 统计一个方法的耗时时长 // 在调用方法之前记录一个毫秒数 long begin = System.currentTimeMillis(); print(); //统计该方法执行的耗时时长 long end = System.currentTimeMillis(); System.out.println("调用方法所耗时长为:" + (end - begin) + "毫秒"); // 下行代码中的参数表示的是自1970年1月1日0时0分0秒000毫秒起的毫秒数(这是一个long类型的数值) // 该方法获取到的时间是:从1970年1月1日0时0分0秒000毫秒算起2毫秒后的时间 Date time1 = new Date(2); // 规定显示的时间格式 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); // 下行代码为什么输出结果不是1970-01-01 00:00:002,而是多了8个小时呢?原因是:北京处于东8区,我们采用的是东八区的时间 System.out.println(sdf2.format(time1));//1970-01-01 08:00:00 002 // 获取昨天的此时的时间 // System.currentTimeMillis()获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数 // 1000 * 60 * 60 * 24 这里的1000是毫秒,1000*60是1分钟,1000*60*60是1小时,1000*60*60*24是1天 Date time2 = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 ); System.out.println(sdf2.format(time2)); } private static void print() { for (int i = 0; i < 1000; i++) { System.out.println("i = " + i); } } }
关于日期与时间的一些知识点
于 2022-12-11 07:54:53 首次发布