项目中遇到的日期及其格式的问题整理记录

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来表示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值