//前端传入参数格式化 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //后端返回参数格式化, timezone = "GMT+8" 是因为linux时间和windows差8个小时 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")SimpleDateFormat 字符串Date类型互转
package demo01;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
String date = "2022-04-28 22:02:00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
//这里输入的字符串要和你想要的格式长度神马的都一样才行,也就是说string和格式化的 yyyy-MM-dd hh:mm:ss 长度是一致的
Date date1 = simpleDateFormat.parse(date);
System.out.println(date1);//Fri Jan 28 22:02:00 GMT+08:00 2022 GMT(Greenwich Mean Time)是格林尼治标准时间,+08:00 指标准时间加8小时,也就是北京时间。
//这里的格式可以按照需要的定义
SimpleDateFormat simpleDateFormat01 = new SimpleDateFormat("yy");
SimpleDateFormat simpleDateFormat02 = new SimpleDateFormat("yyyy");
SimpleDateFormat simpleDateFormat03 = new SimpleDateFormat("yyyy-mm");
SimpleDateFormat simpleDateFormat04 = new SimpleDateFormat("今天是yyyy年mm月第dd天的hh时mm分ss秒");
SimpleDateFormat simpleDateFormat05 = new SimpleDateFormat("今天是yyyy年mm月第dd天的HH时mm分ss秒");
SimpleDateFormat simpleDateFormat06 = new SimpleDateFormat("今天是yyyy年的第DD天,E");
// System.out.println(simpleDateFormat01.parse(date));
// System.out.println(simpleDateFormat02.parse(date));
// System.out.println(simpleDateFormat03.parse(date));
// System.out.println(simpleDateFormat03.parse(date));
System.out.println(simpleDateFormat01.format(date1));//22
System.out.println(simpleDateFormat02.format(date1));//2022
System.out.println(simpleDateFormat03.format(date1));//2022-02
System.out.println(simpleDateFormat04.format(date1));//今天是2022年02月第28天的10时02分00秒
System.out.println(simpleDateFormat05.format(date1));//今天是2022年02月第28天的22时02分00秒
System.out.println(simpleDateFormat06.format(new Date()));//
System.out.println(simpleDateFormat06.format(date1));// 这个有问题求解
}
}
数据库的时间格式化(这里用的mysql)
格式化缩写
%a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位m具体案例
select DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'); -- 2022-05-02 23:13:13 可以统计时间范围内的 select DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00'); -- 2022-05-02 00:00:00 按照天统计 select DATE_FORMAT(NOW(),'%Y-%m-%d'); -- 2022-05-02 可以按照年月日统计 select DATE_FORMAT(NOW(),'%Y-%m'); -- 2022-05 可以按照年月统计 select DATE_FORMAT(NOW(),'%Y'); -- 2022 可以按照年统计 select DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59'); -- 2022-05-02 23:59:59 select DATE_FORMAT(NOW(),'%y-%c-%d 23:59:59'); -- 22-5-02 23:59:59 select DATE_FORMAT(NOW(),'%y-%b-%d 23:59:59'); -- 22-May-02 23:59:59 select DATE_FORMAT(NOW(),'%y-%m-%d 23:59:59'); -- 22-05-02 23:59:59 select DATE_FORMAT(NOW(),'%y-%m-%d 23:59:59 %a'); -- 22-05-02 23:59:59 select DATE_FORMAT(NOW(),'%j'); -- 122天 select DATE_FORMAT(NOW(),'%Y年第 %j天'); -- 属于 2022年第 122天 select DATE_FORMAT(NOW(),'%u'); -- 此年中的第 几个周 此时是第18个Mon
这里实际上都是拼成了字符串,可以自由拼接



