DATE_FORMAT
Java时间格式转换
- 遇到的问题:在一个实现Excel导入中需要将Excel中的获取的数据转换成Date类型的存入,由于也包括从页面添加的数据,所以要实现两个数据的格式统一。
- 使用这个方法将数据类型进行转换
SimpleDateFormat类
- 日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 ‘A’ 到 ‘Z’ 和 ‘a’ 到 ‘z’ 被解释为模式字母,用来表示日期或时间字符串元素。
- 例如:
- SimpleDateFormat中parse方法,就是上面使用到的方法,主要作用是 将字符串转换成时间,parse()方法返回的是一个Date类型的数据
- format方法:将时间转化为字符串,返回的是一个StringBuffer类型的数据
在数据库中的使用
- DATE_FORMAT()方法:主要作用是用于以不同的格式显示日期/时间数据,下图中的
%Y-%m-%d
是使用的特定格式
- DATE_FORMAT()方法:主要作用是用于以不同的格式显示日期/时间数据,下图中的
- 可用的格式
- 计算日期
- 其他计算的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20DateUtils.setYears(new Date(), 2019); // 根据参数设置日期年份.输出:2019-05-16 19:30:20
DateUtils.addMonths(new Date(), -1); // 根据参数增加日期月份.输出:2019-04-16 19:30:20
DateUtils.truncate(new Date(), Calendar.DATE); // 根据参数截取日期.输出:2019-04-16 00:00:00
DateUtils.ceiling(new Date(), Calendar.DATE); // 根据参数向上进位日期.输出:2018-05-17 00:00:00
DateUtils.getFragmentInDays(new Date(), Calendar.MONTH); // 根据参数截取范围内日期后返回天数.输出:16
DateUtils.truncatedEquals(new Date(), new Date(), Calendar.DATE); //根据参数范围比较日期是否相同,该例子只比较年月日.输出:true
DateUtils.truncatedCompareTo(new Date(), new Date(), Calendar.MONTH); //根据参数范围比较日期大小,该例子只比较年月.输出:0
// 举例
getFirstSecondOfMonth(); // 获取当月第一秒
getLastSecondOfMonth(); // 获取当月最后一秒
getDayOfYear(); // 获取日期是该年的第几天
getFirstSundayOfMonth(); // 获取当月的第一个周日
}
public static void getFirstSecondOfMonth() {
Date date = new Date();
date = DateUtils.truncate(date, Calendar.MONTH); // 截取日期到月份
System.out.println(date); // 输出:2018-05-01 00:00:00
}
其他
- 获取当前时间
1
Date date = new Date();
- 获取当前时间戳
1
long timestamp = System.currentTimeMillis();
- 日期转时间戳
1
2
3Date date = new Date();
String timestamp = String.valueOf(date.getTime());
System.out.println(timestamp); - 时间戳转日期
1
2
3String timestamp = "1521480110000";
Date date = new Date(new Long(timestamp));
System.out.println(date); - 日期转字符串
1
2
3
4SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String dateStr = sdf.format(date);
System.out.println(dateStr); - 字符串转日期
1
2
3
4SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = "2018-05-16 19:30:20";
Date date = sdf.parse(dateStr);
System.out.println(date); - 日期转日历
1
2
3
4Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
System.out.println(c);
DATE_FORMAT
http://example.com/2022/11/19/DATE-FORMAT/