Java日期、字符串、毫秒值格式转换
2024-04-26 08:53:21 阅读次数:27
Java,日期
1 /**
2 *
3 */
4 package study.reliable;
5 /**
6 * @author : Administrator
7 * @date :2022年4月21日 下午9:38:55
8 *
9 */
10 /**
11 * @author Administrator
12 *
13 */
14
15 import java.text.DateFormat;
16 import java.text.ParseException;
17 import java.text.SimpleDateFormat;
18 import java.util.Date;
19
20 public class DateDemo {
21 //将毫秒值转换为日期
22 public void demo1() {
23 //获取当前时间毫秒值
24 long time = System.currentTimeMillis();
25 System.out.println(time); // 1650548737097
26
27 //用Dated对象获取当前时间
28 Date date = new Date();
29 System.out.println(date);// Thu Apr 21 21:46:40 CST 2022
30
31 //将指定时间(毫秒值)传给Date构造器,自动转换为日期,后面记得加上L
32 Date date2 = new Date(time);
33 System.out.println(date2);
34 }
35
36 //格式化日期输出
37 /*
38 * K : A.M./P.M. (0~11)格式小时
39 * H : 一天中的小时 (0~23)
40 * k : 一天中的小时(1~24)
41 * h : A.M./P.M. (1~12)格式小时
42 */
43 private void demo2() {
44 // 获取当前时间对象
45 Date date = new Date();
46
47 // 获取日期格式器
48 DateFormat dateFormat = DateFormat.getDateInstance();
49 // 输出结果为 2022-4-21
50 System.out.println(dateFormat.format(date));
51
52 // 获取日期/时间格式器
53 dateFormat = DateFormat.getDateTimeInstance();
54 // 输出结果为 2022-4-21 21:47:44
55 System.out.println(dateFormat.format(date));
56
57 // 自定义格式 比如晚上九点 用kk就是 21 用hh就是09
58 dateFormat = new SimpleDateFormat("yyyy/MM/dd kk:mm:ss");
59 // 输出结果为 2022/04/21 09:52:15
60 System.out.println(dateFormat.format(date));
61
62 }
63 //字符串转日期
64 private static void demo3() throws ParseException {
65
66 String string = "2017---3---12";
67
68 //获取日期格式对象方法
69 DateFormat dateFormat = DateFormat.getDateInstance();
70
71 //这里的格式要和字符串日期的格式匹配,不然会抛出转换异常
72 dateFormat = new SimpleDateFormat("yyyy---MM---dd");
73
74 Date date = dateFormat.parse(string);
75 //输出结果为 Sun Mar 12 00:00:00 CST 2017
76 System.out.println(date);
77
78 //输出结果为 2017-3-12 0:00:00
79 System.out.println(DateFormat.getDateTimeInstance().format(new Date(dateFormat.parse(string).getTime()) ));
80 }
81 /*
82 * 两日期相减
83 * 将字符串转换为日期对象,再转换成毫秒值,将毫秒值相减,再换算成天数。
84 */
85 private static void demo4() throws ParseException {
86
87 String s1 = "2017-3-22";
88 String s2 = "2017-4-12";
89
90 //定义日期格式器
91 DateFormat dateFormat = DateFormat.getDateInstance();
92
93 //从给定字符串的开始解析文本,以生成一个日期,返回的是Date对象
94 Date date1 = dateFormat.parse(s1);
95 Date date2 = dateFormat.parse(s2);
96
97 //毫秒值用long,int位数不够
98 long time1 = date1.getTime();
99 long time2 = date2.getTime();
100
101 //两日期相减的绝对值
102 long time = Math.abs(time1-time2);
103
104 //输出结果: 21
105 System.out.println(time/1000/60/60/24); //毫秒值转换为天数
106
107 }
108 public static void main(String args[])
109 {
110 DateDemo myDate = new DateDemo();
111 // myDate.demo1();
112 try {
113 myDate.demo3();
114 } catch (ParseException e) {
115 // TODO 自动生成的 catch 块
116 e.printStackTrace();
117 }
118 }
119
120
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/reliableyang/5657023,作者:靠谱杨的挨踢IT生活,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:装饰模式(Decorator)
下一篇:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。