Mysql和java时间问题及时间转换

精度高的可以存精度低的,精度低的存精度高的会丢失精度(没有测过)

Mysql的常见时间类型:

datetime:2022-07-06 19:45:21 精确到毫秒

date:2022-07-06 精确到天

timestamp:2022-07-06 19:45:21 精确到毫秒 内存小,但是时间范围有限

java常见时间类型:

java.util.Date:2022-07-06T10:58:15.905+00:00很不好看,所以一般要格式化,但用这个存人数据库是正常显示的。取出来就不正常了

java.sql.Date:2022-07-06 

所以一般用java.util.Date格式化,或者精度要求不高直接用java.sql.Date

String与java各时间类型转换

String变成java.util.Date(列举两个格式,其实不止)

 public static Date timeformatd(String time){
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );//括号里的参数格式可以根据需求进行修改
        try {
            Date newTime = sdf.parse(time);//time为页面接收的String类型的参数
            return newTime;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    public static Date timeformats(String time){
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );//括号里的参数格式可以根据需求进行修改
        try {
            Date newTime = sdf.parse(time);//time为页面接收的String类型的参数
            return newTime;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

String变成java.sql.Date

String不能直接变成java.sql.Date

所以先变为java.util.Date再变为java.sql.Date

只讲java.util.Date变为java.sql.Date

Date newEntryTimeTemp= TimeFormat.timeformatd(entryTime); 
java.sql.Date newEntryTime = new java.sql.Date(newEntryTimeTemp.getTime());

java.util.Date变成 String

(下面这个例子调了格式,只精确到天,可以精确到s等等)

 public static String timeformatd(Date time){
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );//括号里的参数格式可以根据需求进行修改
        String newTime = sdf.format(time);//time为页面接收的String类型的参数
        return newTime;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值