typeMismatch.target春季启动批次拒绝值[2020-09-18T00:00:00 + 02:00]

文森特·BDL

我正在尝试使用批处理从Spring Boot集成CSV文件中的数据,我对日期字段有问题,因为无论使用哪种类型,它都会不断被拒绝,这是我的代码:

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String service;
    private Timestamp time;

    @Override
    public IndProd process(final IndProd indProd) throws Exception {
        String service = indProd.getService();
        Timestamp time = indProd.getTime();
        Long nbAppels = indProd.getNbAppels();
        Integer tempsDeReponseMoyenMillisecondes = indProd.getTempsDeReponseMoyenMillisecondes();
        Long volume = indProd.getVolume();
        BigDecimal tempsDeReponseMoyenSecondes = indProd.getTempsDeReponseMoyenSecondes();
        IndProd transformedIndProd = new IndProd(service,time,nbAppels,tempsDeReponseMoyenMillisecondes,volume,tempsDeReponseMoyenSecondes);

        return transformedIndProd;
    }

这是返回的错误:

由以下原因引起:org.springframework.validation.BindException:org.springframework.validation.BeanPropertyBindingResult:1错误字段“时间”上的对象“目标”中的字段错误:拒绝的值[2020-09-18T00:00:00 + 02:00 ]; 代码[typeMismatch.target.time,typeMismatch.time,typeMismatch.java.sql.Timestamp,typeMismatch];参数[org.springframework.context.support.DefaultMessageSourceResolvable:代码[target.time,time]; 参数[]; 默认消息[时间]];默认消息[未能将类型'java.lang.String'的属性值转换为属性'time'的必需类型'java.sql.Timestamp';嵌套异常为java.lang.IllegalStateException:无法将属性“时间”的类型“ java.lang.String”的值转换为所需的类型“ java.sql.Timestamp”:

谢谢你的帮助

阿文德·库玛·阿维纳什(Arvind Kumar Avinash)

从错误中可以清楚地看出,它indProd.getTime()返回了String您试图分配给Timestamp变量的值。假设indProd.getTime()返回格式为日期-时间的字符串,yyyy-MM-dd'T'HH:mm:ssXXX例如2020-09-18T00:00:00+02:00(如问题标题中所述),则应替换

Timestamp time = indProd.getTime();

Timestamp time = new Timestamp(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").parse(indProd.getTime()).getTime());

注意: java.sql.Timestamp extendsjava.util.Date的date-time APIjava.util及其格式APISimpleDateFormat已经过时且容易出错。我建议您应该完全停止使用它们,并切换到现代的date-time API

使用现代的日期时间API:

OffsetDateTime odt = OffsetDateTime.parse(indProd.getTime());
//...
IndProd transformedIndProd = new IndProd(service,odt,nbAppels,tempsDeReponseMoyenMillisecondes,volume,tempsDeReponseMoyenSecondes);

并将实例成员声明为

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String service;
private OffsetDateTime odt;// Change the type to OffsetDateTime

Trail:Date Time上了解有关现代日期时间API的更多信息如果您正在为Android项目工作,并且您的Android API级别仍不兼容Java-8,请检查可通过desugaring获得的Java 8+ API如何在Android Project中使用ThreeTenABP

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

日期时间解析“2021-04-20T00:09:14.7724640+02:00”

将2020-09-01T00:00:00-05:00时间戳转换为dd-mm-yyyy

moment().startOf('day')` 显示为 `Moment<2020-05-01T00:00:00+02:00>`

有没有一种方法可以替换“ 2020-09-06 12:00:00”:[...]替换为“ timestamp”:“ 2019-12-18T10:30:00Z”,“ keys”:[在Laravel 8中

dateTime 字符串格式 (2021-09-18T09:00) 在提交到工作表时更改为 2021-09-18 09:00

找不到此日期的格式:“2018-09-09T09:04:47+00:00”

如何在Python3中将2020-04-06T09:04:52.610 + 02:00转换为datetime.datetime?

使用momentjs或Date()获得3月的2020-02-29T00:00:00.000Z

java.text.parseException:无法解析的日期:2020-02-06T08:00:00

获得的Android蓝牙MAC是02:00:00:00:00:00

如何使用php将时间'08:60:02'转换为'09:00:02'?

'Monday' 的 postgresql 时间段列表 | 09:00:00 | 11:00:00

如何将“ 2019-11-30T07:00:00 + 09:00”日期转换为整数?

解析时间格式“ 2015-07-14T09:00:00:+08:000”,返回nil

DateTimeParseException:无法解析文本'2020-04-01T08:53:47.000 + 02:00 00:00',未解析的文本位于索引29

如何在熊猫数据框中转换时间2020-09-25T00:20:00.000Z

DateFormat Flutter 我正在以这种格式获取日期格式json api“2020-04-18T00:00:00”,但我想要这种格式“dd-mm-yyyy”

在SSMS中,如何使用DATEADD函数获取'2018-09-01 00:00:00.000'和'2018-09-01 023:59:00.000'之间的所有值

如何使用 SimpleDateFormatter 将 2019-09-18T01:44:35GMT-04:00 转换为 2019-09-18T01:44:35-04:00

如何将字段的默认值设置为“ 0000-00-00 00:00:00”?

MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

MySQL不正确的日期时间值:“ 0000-00-00 00:00:00”

不正确的DateTime值'0000-00-00 00:00:00'-Date_Sub()在

日期时间值不正确:列的“0000-00-00 00:00:00”

无法将DateTimeField的默认值设置为“ 0000-00-00 00:00:00”

WifiInfo.getMacAddress()在Android 6.0设备中返回02:00:00:00:00:00距离

将值“ 09:00”转换为xamarin.forms时出错

00:43 + 0000格式如何从2020-02-27T15获取日期

转换为日期时间格式“ 2020-02-11T17:26:31-05:00”