Java日期时间
package com.gxl.date;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//获取当前时间
Date date = new Date();
System.out.println(date);
//时间戳
System.out.println(date.getTime());
//格式化日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(dateFormat.format(date));
dateFormat = new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");
System.out.println(dateFormat.format(date));
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(date));
}
}
输出:
总结:
使用SimpleDateFormat进行日期格式化时是区分大小写的。例如:MM是月份,mm是分;HH是24小时制,而hh是12小时制;
重点注意:非必要情况不要使用YYYY表示年份,从输出大家应该都看出了问题。翻看jdk手册就会发现问题出在了哪里
Week year:意思为当天所在周属于的年份,而一周是从周日开始,周六结束,故只要本周跨年,那么这周就算入下一年。例如今天2021.12.26,用YYYY-MM-dd格式化就会变成2022-12-26
mysql日期时间类型
- 如果要用来表示年月日,通常用date来表示
- 如果要用来表示年月日时分秒,通常用datetime表示
- 支持时间范围为:1000-01-01 00:00:00到9999-12-31 23:59:59
- 只能反映插入时当地的时区
- 如果只用来表示时分秒,通常用time来表示
- 如果需要经常插入或者更新日期为当前系统时间,则通常使用timestamp来表示
- 支持时间范围为:19700101080001到2038年的某个时间
- 表中的第一个timestamp列会自动设置为系统时间,插入null或者不明确赋值是也会自动设置为系统时间
- 若插入的值超出取值范围,则使用“0000-00-00 00:00:00”进行填补
- 插入和查询受时区影响
- 如果只是表示年份,可以用year来表示