我有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,我想像上面那样检索日期。
谢谢。
答案 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>