java个人学习笔记16-(日期时间)
java日期时间
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。
- 第一个构造函数使用当前日期和时间来初始化对象。
Date( )
- 第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
Date(long millisec)
Date对象常用的方法:
方法 | 描述 |
---|---|
boolean after(Date date) | date是否在后 |
boolean before(Date date) | date是否在前 |
long getTime() | 1970/1/1 00:00至此的millisecond |
void setTime(long time) | 设置时间 |
String toString() | 无 |
日期比较
Java使用以下三种方法来比较两个日期:
- 使用 getTime() 方法获取两个日期的秒数值,然后比较这两个值。
- 使用方法 before(),after() 和 equals()。
- 使用 compareTo() 方法
使用 SimpleDateFormat 格式化日期
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行
SimpleDateFormat类在java.text包中
var t = new Date();
var df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(df.format(t));
结果:
2020-01-01 12:23:50
其中 yyyy 是年,MM 是月,dd 是日,HH:mm:ss 是时、分、秒。
更多模式字母见java文档
#printf 格式化日期
输出时间要有%t
转化符 | 类型 |
---|---|
c | 完整的日期时间 |
F | ISO 8601日期(年-月-日) |
D | 美国格式的日期(月/日/年) |
r | 12时制 |
T | 24时制 |
R | 24时制,没有秒 |
##printf重复使用日期
- 指定索引,索引必须紧跟在%后面,而且必须以$结束。
索引从1开始
System.out.printlnf("%1$s %2$td, %2$tY", "the date is :", date);
2.使用 < 标志
<再次使前一个的参数
System.out.printf("%s %tB %<te, %<tY", "the date is:", date);
#指定语言和地区
可以用format来指定Date格式的语言和地区
Lacle类在java.util包中
指定语言:
常量 | 语言 |
---|---|
Locale.ENGLISH | 英语 |
Locale.FRENCH | 法语 |
Locale.GERMAN | 德语 |
Locale.ITALIAN | 意大利语 |
Locale.JAPANESE | 日语 |
Locale.KOREAN | 韩语 |
Locale.CHINESE | 中文 |
Locale.SIMPLIFIED_CHINESE | 简体中文 |
Locale.TRADITIONAL_CHINESE | 繁体中文 |
指定地区:
常量 | 地区 |
---|---|
Locale.FRANCE | 法国 |
Locale.GERMANY | 德国 |
Locale.ITALY | 意大利 |
Locale.JAPAN | 日本 |
Locale.KOREA | 韩国 |
Locale.CHINA | 中国 |
Locale.PRC | 中国的英文简称 |
Locale.TAIWAN | 台湾省 |
Locale.UK | 英国 |
Locale.US | 美国 |
Locale.CANADA | 加拿大(英语) |
Locale.CANADA_FRENCH | 加拿大(法语) |
本地区不用指定
var t = new Date();
System.out.printf("%tA\n", t);
var str = String.format(Locale.US, "%tA", t);
System.out.println(str);
结果:
星期四
Thursday
将字符串解析为时间
使用SimpleDateFormat类的parse()方法
var ft = new SimpleDateFormat("yyyy-MM-dd");
var s = "2020-02-02";
var t = ft.parse(s);
System.out.println(t);
注:要throws ParseException