发布于2022-12-03 10:11 阅读(1167) 评论(0) 点赞(26) 收藏(3)
Date类概述
Date类代表当前所在系统的日期时间信息。
Date的构造器
名称 | 说明 |
---|---|
public Date() | 创建一个Date对象,代表的是系统当前此刻日期时间。 |
public Date(long time) | 把时间毫秒值转换成Date日期对象。 |
Date常用方法
名称 | 说明 |
---|---|
getTime() | 返回从1970年1月1日 00:00:00走到此刻的总的毫秒数 |
setTime(long time) | 设置日期对象的时间为当前时间毫秒值对应的时间 |
Date类获取到的时间对象有两种格式:
时间形式一:日期类表示时间的代码
public class DateDemo {
public static void main(String[] args) {
// 创建日期对象
Date date = new Date();
System.out.println(date); // Wed Oct 12 16:16:56 CST 2022
}
}
时间格式二: 事件毫秒值表示时间的代码
public class DateDemo {
public static void main(String[] args) {
// 创建日期对象
Date date = new Date();
// 获取当前时间的毫秒值
System.out.println(date.getTime()); // 1665562823334
}
}
时间毫秒值 -> 日期对象的两种方法
方式一: 通过Date类的构造器
public class DateDemo2 {
public static void main(String[] args) {
// 获取当前时间的毫秒值
long time = System.currentTimeMillis();
// 方式一: 通过构造器根据毫秒值得到日期对象
Date date1 = new Date(time);
System.out.println(date1); // Wed Oct 12 16:39:53 CST 2022
}
}
方式二: 通过setTime方法根据毫秒值获取日期对象
public class DateDemo2 {
public static void main(String[] args) {
// 获取当前时间的毫秒值
long time = System.currentTimeMillis();
// 方式二: 通过setTime方法根据毫秒值获取日期对象
Date date2 = new Date();
date2.setTime(time);
System.out.println(date2); // Wed Oct 12 16:39:53 CST 2022
}
}
小结:
日期对象创建的两种方式:
public Date(); // 创建日期对象
public long getTime(); // 创建时间毫秒值
时间毫秒值恢复成日期对象的两种方式:
public Date(long time); // 方式一: 通过构造器
public void setTime(long time); // 方式二: 通过setTime方法
上面我们分别讲解了获取日期对象格式和获取时间毫秒值的两种方式, 但是这两种展示时间的格式都不是我们想要的;
在开发中常见的展示时间的格式是类似于下面这样的:
- 2022-4-23 08:20:20, 2022/4/23 08:20:20, 2022.4.23 08:20:20, 2022年4月23日 08:20:20
因此我们可以通过SimpleDateFormat类完成日期时间的格式化操作
SimpleDateFormat类的构造器:
构造器 | 说明 |
---|---|
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat,使用指定的格式 |
SimpleDateFormat类的格式化方法:
格式化方法 | 说明 |
---|---|
format(Date date) | 将日期格式化成日期/时间字符串 |
format(Object time) | 将时间毫秒值式化成日期/时间字符串 |
格式化的时间形式的常用的模式对应关系如下:
演示代码:
格式化日期对象
public class DateDemo3 {
public static void main(String[] args) {
// 获取当前日期对象
Date date = new Date();
// 格式化日期对象(指定最终格式化的形式)
SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");
String newDate = sf.format(date);
System.out.println(newDate);
}
}
格式化时间毫秒值
public class DateDemo3 {
public static void main(String[] args) {
Date date = new Date();
// 获取当前日期毫秒值
long time = date.getTime();
// 格式化日期对象(指定最终格式化的形式)
SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE"); // EEE表示星期几
String newDate = sf.format(time);
System.out.println(newDate);
}
}
SimpleDateFormat可以解析字符串时间成为日期对象:
2011-11-11 11:11:22 -> Date日期对象
通过parse方法解析:
需要注意的是: 使用parse方法时编辑器会提醒代码异常, 我们需要alt+回车将异常抛出
解析方法 | 说明 |
---|---|
parse(String source) | 从给定字符串的开始解析文本以生成日期 |
案例
例如: 将字符串 “2021年08月06日11点11分11秒” 转为日期对象
public class DateDemo4 {
public static void main(String[] args) throws ParseException {
String dateStr = "2021年08月06日11点11分11秒";
// 把字符串时间解析成日期对象
// 格式必须与被解析时间格式完全一样
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH点mm分ss秒");
Date d = sdf.parse(dateStr);
System.out.println(d); // Fri Aug 06 11:11:11 CST 2021
}
}
Calendar概述:
Calendar代表了系统此刻日期对应的日历对象。
Calendar是一个抽象类,不能直接创建对象。
Calendar日历类创建日历的方法
方法名 | 说明 |
---|---|
getInstance() | 获取当前日历对象 |
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
直接打印日历对象cal, 会显示日历对象的所有字段
Calendar cal = Calendar.getInstance();
System.out.println(cal);
Calendar常用方法
方法名 | 说明 |
---|---|
get(int field) | 取日期中的某个字段信息。 |
set(int field,int value) | 修改日历的某个字段信息。 |
add(int field,int amount) | 为某个字段增加/减少指定的值 |
getTime() | 拿到此刻日期对象。 |
getTimeInMillis() | 拿到此刻时间毫秒值 |
get方法获取日历中某个字段的信息, 可以获取年月日时分秒等等
public class CalendarDemo {
public static void main(String[] args) {
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
// 获取年月日...
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH + 1));
System.out.println(cal.get(Calendar.DAY_OF_MONTH)); // 1月中第几天
System.out.println(cal.get(Calendar.DAY_OF_YEAR)); // 1年中第几天
}
}
set方法修改日历中的某个字段
public class CalendarDemo {
public static void main(String[] args) {
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
// 获取年
System.out.println(cal.get(Calendar.YEAR)); // 2022
// 修改年
cal.set(Calendar.YEAR, 2019);
System.out.println(cal.get(Calendar.YEAR)); // 2019
}
}
add方法为某个字段增加/减少指定的值
public class CalendarDemo {
public static void main(String[] args) {
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
// 增加10年
cal.add(Calendar.YEAR, 10);
// 增加20分钟
cal.add(Calendar.MINUTE, 20);
System.out.println(cal.get(Calendar.YEAR)); // 2032
System.out.println(cal.get(Calendar.MINUTE)); // 31
}
}
getTime方法拿到此刻日期对象。
public static void main(String[] args) {
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
// 获取此刻日期对象
Date d = cal.getTime();
System.out.println(d); // Fri Oct 14 16:13:40 CST 2022
}
getTimeInMillis方法拿到此刻时间毫秒值
public static void main(String[] args) {
// 获取系统此刻日历对象
Calendar cal = Calendar.getInstance();
// 获取此刻时间毫秒值
long time = cal.getTimeInMillis();
System.out.println(time);
}
原文链接:https://blog.csdn.net/m0_71485750/article/details/127322877
作者:javabb
链接:http://www.javaheidong.com/blog/article/582794/5c4b2bee70ce1f5bc17a/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!