开发问题:日期格式问题 Failed to convert value of type 'java.lang.String' to required type 'java.util.Date';

后台接收Date数据,用String 类型接收,写入时转换格式

String-》Date,先进行格式修改,再利用parse转换为Date

      java.text.SimpleDateFormat ft = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
        Date date=ft.parse(businessDate);

传输数据格式与前台数据相同

Date->String

String dString=ft.format(data);

 遇到Unparseable date:“2021-08-08”

前端传来的数据结构与,设置的结构不相同,报错。

转换成"yyyy-MM-dd"格式

 

//        设置日期格式
//SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
java.text.SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
Date data=ft.parse(businessDate);
String dString=ft.format(data);
Date date=java.sql.Date.valueOf(dString);

 问题二:

报错信息:Oracle ORA-01861: 文字与格式字符串不匹配 

原因:数据库中参数数据类型为varchar,而查询传递的参数为date类型,

时间计算

 

Date date1=new Date(time1.getTime());
Date date2=new Date(time2.getTime());
                //            单位确定到分钟
planTime=(date2.getTime()-date1.getTime())/1000/60;

String转换为Date类型

private static final String 时间格式= "yyyy-MM-dd";
DateUtils.parseDate(String类型时间, 时间格式)

 

 

传递带时间json时报错

前端传json中包含日期,后端报错,Could not read document

排查后发现在创建实体类时,对应日期没有加注释

注释如下:

    /**
     *日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Column(name = "S_DATE")
    private Date sDate;

 取两时间之间的数据:

x.andGreaterThanOrEqualTo(ClassUtil.getPropertyName(实体类名.class,实体类名::字段get方法), startDate + " 00:00:00");
x.andLessThanOrEqualTo(ClassUtil.getPropertyName(实体类名.class,实体类名::字段个体方法), endDate + " 23:59:59");

 取两日期中间所有的日期

 


Calendar startDate=Calendar.getInstance();
        startDate.setTime(Date1);
        startDate.add(Calendar.DAY_OF_YEAR,-4);
        List<Date> dates=new ArrayList<>();
        Calendar tempStart=Calendar.getInstance();
        tempStart.setTime(startDate.getTime());
        Calendar tempEnd=Calendar.getInstance();
        tempEnd.setTime(Date2);
        tempEnd.add(Calendar.DATE,+1);
        while(tempStart.before(tempEnd)){
            dates.add(tempStart.getTime());
            tempStart.add(Calendar.DAY_OF_YEAR,1);
        }

 根据日期获得星期:

//        根据日期获得星期
        String[] weekDays={"周日","周一","周二","周三","周四","周五","周六"};
        Calendar cal=Calendar.getInstance();
        cal.setTime(parseDate);
        int w=cal.get(Calendar.DAY_OF_WEEK)-1;
        if (w<0) {
            w=0;
        }
        String weekDay=weekDays[w];
        System.out.println(weekDay);

 

posted @ 2021-08-19 11:20  锦瑟流年3344  阅读(452)  评论(0编辑  收藏  举报