Date类—相关操作
-
毫秒值的概念和作用
-
执行路口
package cn.xiaoge.day12.demo02; /* java.util.Date: 表示日期和时间的类 类 Date 表示特定的瞬间, 精确到毫秒. 毫秒: 千分之一秒 1000毫秒=1秒 特定的瞬间: 一个时间点, 一刹那时间 2019-10-26 22:38:24:333 瞬间 2019-10-26 22:38:24:334 瞬间 2019-10-26 22:38:24:335 瞬间 ... 毫秒值的作用: 可以对时间和日期进行计算 2019-10-26 到 2018-10-26 中间一共有 多少天, 可以把日期转换为毫秒进行计算, 计算 完毕, 再把毫秒转换为日期 把日期转换为毫秒: 当前的日期:2018-10-26 时间原点(0毫秒):1970 年 1 月 1 日 00:00:00(英国格林威治) 就是计算当前日期到时间原点之间, 一共经历了多少毫秒 (1572101160308L) 注意: 中国属于东八区, 会把时间增加8个小时 1970 年 1 月 1 日 08:00:00 把毫秒转换为日期: 1 天 = 24 × 60 × 60 = 86400 秒 = 86400 x 1000 = 86400000毫秒 */ public class Demo01Date { public static void main(String[] args) { System.out.println(System.currentTimeMillis()); // 获取当前系统时间到1970 年 1 月 1 日 00:00:00经历了多少毫秒 } } // 运行结果 1572159515508
-
-
Date类的构造方法和成员方法
-
执行路口
package cn.xiaoge.day12.demo02; import java.util.Date; public class Demo02Date { public static void main(String[] args) { demo01(); System.out.println("===================================="); demo02(); System.out.println("===================================="); demo03(); System.out.println("===================================="); } /* long getTime() 把日期转换为毫秒数(相当于System.currentTimeMillis()方法) 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 */ private static void demo03() { Date date = new Date(); long time = date.getTime(); System.out.println(time); // 1572154129570 } /* Date类的带参数构造方法 Date(long date): 传递毫秒值, 把毫秒值转换为Date日期 */ private static void demo02() { Date date1 = new Date(0L); System.out.println(date1); // Thu Jan 01 08:00:00 CST 1970 Date date2 = new Date(1572101160308L); System.out.println(date2); // Sat Oct 26 22:46:00 CST 2019 } /* Date类的空参数构造方法 Date() 获取当前系统的日期和时间 */ private static void demo01() { Date date = new Date(); System.out.println(date); // Sun Oct 27 13:20:57 CST 2019 } } // 运行结果 Sun Oct 27 14:59:41 CST 2019 ==================================== Thu Jan 01 08:00:00 CST 1970 Sat Oct 26 22:46:00 CST 2019 ==================================== 1572159581707 ====================================
-
-
DateFormat类和SimpleDateFormat及DateForm类的format方法和parse方法
-
执行路口
package cn.xiaoge.day12.demo03; /* java.text.DateFormat: 是日期/时间格式化子类的抽象类 作用: 格式化(也就是日期 -> 文本)、解析(文本-> 日期) 成员方法: String format(Date date) 按照指定的模式, 把Date日期, 格式化为符合模式的字符串 Date parse(String source) 把符合模式的字符串, 解析为Date日期 DateFormat: 是一个抽象类, 无法直接创建对象使用, 可以使用DateFormat类的子类 java.text.SimpleDateFormat extends DateFormat 构造方法: SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 参数: String pattern: 传递指定的模式 模式: 区分大小写 y 年 M 月 d 日 H 时 m 分 s 秒 写对应的模式, 会把模式替换为对应的日期和时间 "yyyy-MM-dd HH:mm:ss" 注意: 模式中的字母不能更改, 链接模式的符号可以改变 "yyyy年MM月dd日 HH时mm分ss秒" */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo01DateFormat { public static void main(String[] args) throws ParseException { demo01(); System.out.println("========================="); demo02(); System.out.println("========================="); } /* 使用DateFormat类中的方法parse, 把文本解析为日期 使用步骤: 1. 创建SimpleDateFormat对象, 构造方法中传递指定的模式 2. 调用SimpleDateFormat对象中的方法parse, 把符合构造方法中模式的字符串, 解析为Date日期 注意: public Date parse(String source) throws ParseException parse方法声明了一个异常叫ParseException 如果字符串和构造方法的模式不一样, 那么程序就会跑出此异常 调用一个抛出异常的方法, 就必须的处理这个异常, 要么throws继续抛出这个异常, 要么try catch自己处理 */ private static void demo02() throws ParseException { // 1. 创建SimpleDateFormat对象, 构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); // 2. 调用SimpleDateFormat对象中的方法parse, 把符合构造方法中模式的字符串, 解析为Date日期 // Date parse(String source) 把符合模式的字符串, 解析为Date日期 Date date = sdf.parse("2019年10月27日 14时23分49秒"); System.out.println(date); } /* 使用DateFormat类中的方法format, 把日期格式化为文本 使用步骤: 1. 创建SimpleDateFormat对象, 构造方法中传递指定的模式 2. 调用SimpleDateFormat对象中的方法Format, 按照构造方法中指定的模式, 把Date日期格式化为符合模式的字符串(文本) */ private static void demo01() { // 1. 创建SimpleDateFormat对象, 构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); // 2. 调用SimpleDateFormat对象中的方法Format, 按照构造方法中指定的模式, 把Date日期格式化为符合模式的字符串(文本) // String format(Date date) 按照指定的模式, 把Date日期, 格式化为符合模式的字符串 Date date = new Date(); System.out.println(date); // Sun Oct 27 14:23:49 CST 2019 String dateFormat = sdf.format(date); System.out.println(dateFormat); // 2019年10月27日 14时23分49秒 } } // 运行路口 Sun Oct 27 15:00:57 CST 2019 2019年10月27日 15时00分57秒 ========================= Sun Oct 27 14:23:49 CST 2019 =========================
-
-
计算一个人出生了多少天
-
执行路口
package cn.xiaoge.day12.demo04; /* 1、要获取出生日期Scanner 2、要将出生日期(字符串)转换成为Date格式的样子 3、讲Date格式的出生日期转换为毫秒值 4、获取当前日期 5、将当前日期转换为毫秒值 6、将毫秒值转换为天 */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Demo01BornDate { public static void main(String[] args) throws ParseException { // 1、使用Scanner类中的方法next,获取出生日期 Scanner sc = new Scanner(System.in); System.out.println("请输出您的出生日期,格式:yyyy-MM-dd"); String birthdayDateString = sc.next(); // 2、使用DateFormat类中的方法parse,把字符串的出生日期,解析为Date格式的出生日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date birthdayDate = sdf.parse(birthdayDateString); // 3、把Date格式的出生日期转换为毫秒值 long birthdayDateTime = birthdayDate.getTime(); // 4、获取当前的日期,转换为毫秒值 long todayTime = new Date().getTime(); // 5、使用当前日期的毫秒值-出生日期的毫秒值 long time = todayTime - birthdayDateTime; // 6、把毫秒值转换为天(s / 1000 / 60 / 60 / 24) System.out.println("您已经出生了:" + time / 1000 / 60 / 60 /24 + "天"); } } // 运行结果 请输出您的出生日期,格式:yyyy-MM-dd 2019-10-22 您已经出生了:5天
-
浙公网安备 33010602011771号