ParseException-Java中不可解析的日期异常

时间:2020-07-12 14:52:43

标签: java date date-format

我有oracle数据库,其列数据类型为“ agg=Subcategory.objects.annotate(giacenza=Coalesce(Sum('materials__quantity'), 0)).annotate( utilizzato=Coalesce(Sum('costs_materials__quantity'), 0)) ”。哪个产生 就像数据库中的14/11/2019 06:30:00,+03:00。

当我尝试从Java获取此时间戳时 我得到TIMESTAMP(0) WITH TIME ZONE。我们的项目Java版本是6。我尝试过

java.text.ParseException: Unparseable date: "28-MAY-12 07.40.03 PM +03:00"

但是没有一个人对我有用,都丢了 new SimpleDateFormat("dd-MM-yy hh.mm.ss") , new SimpleDateFormat("dd-MM-yy hh.mm.ss, Z"), new SimpleDateFormat("dd-MM-yy hh.mm.ss, z") , new SimpleDateFormat("dd/MM/yy hh.mm.ss, z") , new SimpleDateFormat("dd/MM/yy hh.mm.ss, Z") , new SimpleDateFormat("dd/MM/yy hh.mm.ss")

在Java端,我的类中具有date数据类型属性,我想从oracle数据库中检索数据,然后解析,然后设置为date数据类型属性,如下所示。

java.text.ParseException: Unparseable date error.

对于ex在数据库中的时间戳数据看起来像是:14/11/2019 06:30:00,+03:00,我想像上面那样检索日期。

谢谢。

1 个答案:

答案 0 :(得分:0)

部分解决方案是更改模式,以便解析月份的名称和am / pm标记。将MM更改为MMM并添加a

new SimpleDateFormat("dd-MMM-yy hh.mm.ss a").parse(str)

但是,这将忽略时区信息。它将在运行此代码的默认本地时区中返回带有预期时间(即07:40:03 PM)的日期,该时间可能与输入GMT + 0300中的时区不同。

在Java 6中,似乎没有一种将+03:00解析为带有SimpleDateFormat的时区的方法,因此,如果您需要解析时区,则需要更多的自定义代码。 / p>

相关问题