时间类 API
在日常学习生活中,我们经常遇到时间相关的问题,现在虽然 Date 类已经不是主流了,但任然有许多方法要学习
使用示例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package APICourceCode;
import java.text.DateFormat;
import java.util.Date;
public class dateAPI {
public static void main(String[] args) {
Date date = new Date();
DateFormat ses = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
String sesa = ses.format(date);
System.out.println(sesa);
}
}
|
其常见的Style如下
1
2
3
4
|
FULL:2019年12月16日 星期一 下午06时38分17秒 CST
LONG:2019年12月16日 下午06时39分20秒
MEDIUM:2019-12-16 18:39:41 (默认方式)
SHORT:19-12-16 下午6:40
|
如果需要自定义的格式,就需要按照下面的表格自定义,自定义以后,系统自带的Style将不生效
字母 |
意义 |
y |
年 |
M |
月份 |
w |
年份中的周数 |
W |
月份中的周数 |
d |
月份中的天数 |
D |
年份中的天数 |
F |
月份中的星期 |
E |
星期中的天数 |
a |
am/pm 表示上下午 |
H |
一天中的小时数(0-23) |
h |
am/pm 中的一天小时数(1-12) |
m |
小时中的分钟数 |
s |
分钟中的秒数 |
S |
毫秒数 |
z |
PST;GMT 时区 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package APICourceCode;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class dateAPI {
public static void main(String[] args) {
Date date = new Date();
DateFormat ses = DateFormat.getDateTimeInstance();
ses = new SimpleDateFormat("yyyy/MM/dd HH-mm-ss-SS");
String sesa = ses.format(date);
System.out.println(sesa);
}
}
|
总结:
DateFormat方法其实很简单,
① 首先new一个Date类对象,就不用管了
② 调用DateFormat方法对象(不需要 new),生成自定义的Style
③ 使用字符串接收DateFormat对象的Format方法,需要传Date类的对象
使用示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package APICourceCode;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
public class ReverseDateFormat {
public static void main(String[] args) throws ParseException {
String str = "2019-07-02";
DateFormat se = DateFormat.getDateInstance();
Date date =se.parse(str);
System.out.println(date);
}
}
|
Calendar
使用示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package APICourceCode;
import java.util.Calendar;
public class CalenderL {
public static void main(String[] args) {
Calendar se = Calendar.getInstance();
se.add(Calendar.YEAR, 1);
int year = se.get(Calendar.YEAR);
int month = se.get(Calendar.MONTH)+1;
int day = se.get(Calendar.DAY_OF_MONTH);
int hours = se.get(Calendar.HOUR_OF_DAY);
int minute = se.get(Calendar.MINUTE);
int sec = se.get(Calendar.SECOND);
System.out.println(year + "-" + month + "-" + day + "-" + hours + "-" + minute + "-" + sec);
}
}
----------
2020-12-16-20-16-53
|
常见的Calendar参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
java.util.GregorianCalendar[
time=1576496255445,
firstDayOfWeek=1,
YEAR=2019,
MONTH=11,
WEEK_OF_YEAR=51,
WEEK_OF_MONTH=3,
DAY_OF_MONTH=16,
DAY_OF_YEAR=350,
DAY_OF_WEEK=2,
DAY_OF_WEEK_IN_MONTH=3,
HOUR=7,
HOUR_OF_DAY=19,
MINUTE=37,
SECOND=35,
MILLISECOND=445]
|
日期的偏移
1
|
se.add(Calendar.MONTH, 1);
|
个人认为作用不是很大