Date
获取年月日时分
(获取年月日时分秒这几个方法已经过期)
public static void main(String[] args) {
// 获取当前系统毫秒数
long time = System.currentTimeMillis();
System.out.println(time); // 1644820617444
// 日期对象
long time1 = new Date().getTime();
System.out.println(time1); // 1644820617444
// 获取年(要+1900)
int year = time1.getYear() + 1900;
System.out.println(year); // 2021
// 获取月份(默认月份 0~11)
int month = time1.getMonth() + 1;
System.out.println(month); // 7
// 获取天(周几)
int day = time1.getDay();
System.out.println(day); // 5
// 获取小时(几点)
int hour = time1.getHours(); // 9
System.out.println(hour);
// 获取分钟
int minute = time1.getMinutes();
System.out.println(minute); // 56
}
时间格式化
常见的格式化编码:
字母 | 描述 | 示例 |
---|---|---|
G | 纪元标记 | AD |
y | 四位年份 | 2001 |
M | 月份 | July or 07 |
d | 一个月的日期 | 10 |
h | A.M./P.M. (1~12)格式小时 | 12 |
H | 一天中的小时 (0~23) | 22 |
m | 分钟数 | 30 |
s | 秒数 | 55 |
S | 毫秒数 | 234 |
E | 星期几 | Tuesday |
D | 一年中的日子 | 360 |
F | 一个月中第几周的周几 | 2 (second Wed. in July) |
w | 一年中第几周 | 40 |
W | 一个月中第几周 | 1 |
a | A.M./P.M. 标记 | PM |
k | 一天中的小时(1~24) | 24 |
K | A.M./P.M. (0~11)格式小时 | 10 |
z | 时区 | Eastern Standard Time |
' | 文字定界符 | Delimiter |
" | 单引号 | ` |
(1)日期对象格式化为字符串
public static void main(String[] args) {
Date date = new Date();
// 创建时间格式化模板:参数是一个模板
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:ss:mm");
System.out.println(simpleDateFormat.format(date)); // 2021-07-09 10:15:01
}
(2)把字符串解析为日期对象
public static void main(String[] args) {
long date = new Date().getTime();
// 创建时间格式化模板:参数是一个模板
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
// 这个字符串格式必须跟上边模板一样才可以。
String time = "2022/09/08 09:08:01";
try {
Date date1 = simpleDateFormat.parse(time);
System.out.println(date1); // Thu Sep 08 09:08:01 CST 2022
} catch (ParseException e) {
e.printStackTrace();
}
}
(3)时区的问题
相对于当前的北京时间,格式化别的国家的时间
public static void main(String[] args) {
// 创建时间格式化模板:参数是一个模板
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
TimeZone timeZone = TimeZone.getTimeZone("Asia/Tokyo"); // 获取一个国家的时区
// 设置要格式化哪个国家的时区,默认是中国
simpleDateFormat.setTimeZone(timeZone);
// 相对于当前中国时间,东京的时间为:2021/07/09 11:41:01
System.out.println(simpleDateFormat.format(new Date()));
}