日期-rq-json-pringMVC序列化-日期大小写

pringMVC序列化

springMVC整合jackson后,可以自定义json转换的数据,例如数据库的datetime类型,java获取后jackson默认将该类型转为long,所以前端页面看到的是一串数字,我们可以自定义接口序列化输出的日期的格式

@JSONField(name = "ENDTIME",ordinal = 0,format = "yyyy-MM-dd hh:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy MM-dd HH:mm:ss")
	Date endTime;

接口进来, — @DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)
接口出去 —@JsonFormat(timezone = “GMT+8”,pattern = “yyyy MM-dd HH:mm:ss”)
序列化: @JSONField(name = “ENDTIME”,ordinal = 0,format = “yyyy-MM-dd hh:mm:ss”)

在springboot应用中,@RestController层注解的json默认序列化中,日期格式默认为:2018-06-17T07:24:07.430+0000。日常需求中,往往需要将日期转化为
修改方法:

方法一:

在apllication.properties加入下面配置
    #时间戳统一转换

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
//这个是时区,一定要加,否则会默认为格林尼治时间,即少8小时
spring.jackson.time-zone=GMT+8

方法二:

    //在bean对象上加上
    @JsonFormat(timezone = "GMT+8", pattern = "yyyyMMddHHmmss")
    private Date createTime;
    //出参 入参数
    1.作为入参格式化
      @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

    2.作为出参格式化
    可以单独加在相应的成员变量上
   @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")   

时间

package com.streamax.basePlatForm.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期处理
 *
 * @author llyang
 * @date 2018/11/20 19:11
 */
public class DateUtil {

    private DateUtil(){}

    public static final String shortSimpleFormat="yyyyMMdd";

    public static final String allSimpleFormat = "yyyy-MM-dd HH:mm:ss";

    public static final String YYYY_MM_DD = "yyyy-MM-dd";
     //获取时间的long形态 单位s
    public  static long getLongFromDate(String string){
        Date date = strToDate(string);
        return  date.getTime()/1000;
    }
    // 将 数字形式的值 转化为 String
   //eg: DateUtil.getStringFromInt(1547654400) -------   2019-01-17 00:00:00
    public static String getStringFromInt(Integer i){
        return dateToStr(timeToDate(i));
    }
    /**
     * 时间转换为时间戳 单位是秒
     */
    public static Long dateToTime(Date date) {
        if(date == null) {
            return null;
        }
        return (date.getTime() / 1000);
    }

    /**
     * 当前时间戳,秒
     * @return
     */
    public static Long currentTime() {
        return  System.currentTimeMillis() / 1000;
    }

    /**
     * 获取前多少天
     * @param day
     * @return
     */
    public static Date preDay(int day) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE,-day);
        return c.getTime();
    }

    /**
     * 获取后多少天
     * @param day
     * @return
     */
    public static Date afterDay(int day) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.DATE,day);
        return c.getTime();
    }

    /**
     * 下次同一天的日期
     * @param day
     * @return
     */
    public static Date nextDay(Integer day) {
        Calendar c = Calendar.getInstance();
        Date now = new Date();
        c.setTime(now);
        c.set(Calendar.DAY_OF_MONTH,day);
        c.set(Calendar.HOUR,10);
        c.set(Calendar.MINUTE,30);
        c.set(Calendar.SECOND,0);
        Date date = c.getTime();
        if(now.getTime() > date.getTime()) {
            c.add(Calendar.MONTH,1);
        }
        return c.getTime();
    }

    /**
     * 时间戳转换为时间
     * @param time
     * @return
     */
    public static Date timeToDate(Integer time) {
        if(time == null || time <= 0) {
            return null;
        }
        Long t = new Long(time + "000");
        return new Date(t);
    }

    public static Date parseStringToDateTime(String timeStr) {
        SimpleDateFormat format = new SimpleDateFormat(shortSimpleFormat);
        try {
            return  format.parse(timeStr);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * date转yyyy-MM-dd HH:mm:ss字符串
     * @param date
     * @return
     */
    public static String dateToStr(Date date) {
        SimpleDateFormat format = new SimpleDateFormat(allSimpleFormat);
        return  format.format(date);
    }
    /**
     * date转yyyy-MM-dd 字符串
     * @param date
     * @return
     */
    public static String dateToShortStr(Date date) {
        SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
        return  format.format(date);
    }

    /**
     * String (yyyy-MM-dd HH:mm:ss) 字符串转日期
     * @param dateStr
     * @return
     */
    public static Date strToDate(String dateStr) {
        SimpleDateFormat format = new SimpleDateFormat(allSimpleFormat);
        try {
            return format.parse(dateStr);
        } catch (ParseException e) {
            throw new CustomException(ErrorCode.PARAMETER_ERROR);
        }
    }


}

扫盲: 大写h是24,小写的是12进制 - 日期大小写

d          月中的某一天。一位数的日期没有前导零。  
dd         月中的某一天。一位数的日期有一个前导零。  
ddd        周中某天的缩写名称,在   AbbreviatedDayNames   中定义。  
dddd       周中某天的完整名称,在   DayNames   中定义。  
M          月份数字。一位数的月份没有前导零。  
MM         月份数字。一位数的月份有一个前导零。  
MMM        月份的缩写名称,在   AbbreviatedMonthNames   中定义。  
MMMM       月份的完整名称,在   MonthNames   中定义。  
y          不包含纪元的年份。不具有前导零。  
yy         不包含纪元的年份。具有前导零。
yyyy       包括纪元的四位数的年份。  
gg         时期或纪元。  
h          12小时制的小时。一位数的小时数没有前导零。  
hh         12小时制的小时。一位数的小时数有前导零。  
H          24小时制的小时。一位数的小时数没有前导零。  
HH         24小时制的小时。一位数的小时数有前导零。 

如果您觉得我的付出对您有帮助,还请关注+点赞哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值