页面----controller------mysql java 日期类型的存储

1、js的date对象不能在controller里封装为java的date 前台传字符串后台自动封装为date

hibernate注解:

@DateTimeFormat(pattern = "yyyy-MM-dd")  就是前台可以传递2018-12-6这样的字符串,后台直接变为date类型  ,pattern也可以带上时间 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )  前台传递的字符串 要和pattern 对应

2、java的date类型也不能直接存到mysql里面,要转化为mysql的时间格式,mysql的日期类型有  date  例如2018-2-1

datetime  例如   2018-2-1 03:22:09   还有 TIMESTAMP 类型 也是2018-2-1 03:22:09

@Temporal(TemporalType.DATE) 该注解会把java的date类型转为mysql的date类型,并以2018-2-1存储到mysql里

@Temporal(TemporalType.TIME)     该注解会把java的date类型转为mysql的时间类型,并以03:22:09存储到mysql里

@Temporal(TemporalType.TIMESTAMP)例如    该注解会把java的date类型转为mysql的时间戳类型,并以03:22:09存储到mysql里
例如:2016-09-28 15:52:32:000

3、java date类型返回页面的时候,默认是long类型 一个长数字,

@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")就是把date格式化后返回给前台,前台收到的就是字符串2018-6-2

timezone 是时区,这里是上海

spring boot全局配置,解决日期转换问题 

1、返回的date类型不能格式化 2019-3-3 23:20:12 这种格式

因为spring boot默认使用jackson  只要加上

spring:
  jackson:
      date-format: yyyy-MM-dd HH:mm:ss
      time-zone: GMT+8
  1. #时间戳统一转换

  2. spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

  3. spring.jackson.time-zone=GMT+8

2、日期转换的问题:向接口传入日期字符串,自动转换成date格式的对象

2、接口的代码

/**
     * 测试日期
     * @param joinDay
     * @return
     */
    @RequestMapping("date")
    public Date testDate(Date joinDay){
        return joinDay;
    }
3、解决方案
 配置了这个,前天封装  返回   存mysql java date转 mysql的datetime 都起作用
package com.trs.jxwy.financial.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Configuration
public class DateConfig{
    @Bean
    public Converter<String, Date> addNewConvert() {
        return new Converter<String, Date>() {
            @Override
            public Date convert(String source) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = null;
                try {
                    date = sdf.parse((String) source);
                } catch (ParseException e) {
                    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                    try {
                        date = sdf2.parse(source);
                    } catch (ParseException e1) {
                        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
                        try {
                            date = sdf3.parse(source);
                        } catch (ParseException e2) {
                           // LOG.error("日期格式转换出错 ", e);
                        }
                    }
                }
                return date;
            }
        };
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值