如何将日期日期转换为Oracle日期?该格式是5月3日星期三,2017年IST 2017



如何转换日期日期HH:MM:SS Time-Stamp到Oracle日期?

格式为:星期三5月3日00:00:00 IST 2017。

我以上面的格式获得日期和时间,我需要此格式将其存储在db(oracle(中,因为在后来我必须获取日期并将其转换为Quartz Scheduler的玉米表达式。

在假设问题是转换为 java.sql.Date对象的假设下,以下代码显示了如何解析给定输入。

public static void main(String[] args)
{
    final String inp = "Wed May 03 00:00:00 IST 2017";
    final String parseFmt = "E MMM dd HH:mm:ss z yyyy";
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern(parseFmt);
    TemporalAccessor ta = dtf.parse(inp);
    ZonedDateTime zdt = ZonedDateTime.from(ta);

    java.sql.Date sqlDate = 
            new java.sql.Date(zdt.toInstant().toEpochMilli());
    System.out.println(inp);
    System.out.println(zdt);
    System.out.println(zdt.toInstant());
    System.out.println(sqlDate);
}

输出:

Wed May 03 00:00:00 IST 2017
2017-05-03T00:00+03:00[Asia/Jerusalem]
2017-05-02T21:00:00Z
2017-05-02

您可以按照以下操作

  1. 使用SimpleDateFormat解析并获取Java.util.date对象
  2. 现在,您可以使用Java.sql.timestamp使用Java.sql.sql.timestamp(date.getTime(((将java.util.date转换为java.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql.sql。

希望这有帮助

使用对象,而不是字符串

我需要这种格式将其存储在db(oracle(

不,你不。

使用日期时间值时,您不需要字符串。对于日期时间值,请使用日期时间对象。

使用Java.Time

对于日期时间对象,仅使用Java.Time类。避免使用Java.util.date,Java.sql.date和Java.sql.timestamp等较旧的班级,因为它们令人困惑,麻烦且设计不佳。

避免3-4个字母伪时区,例如IST。它们不是实时区域,不是标准化的,也不是唯一的(!(。您的意思是"印度标准时间"或"爱尔兰标准时间"?使用以continent/region格式命名的实时区域,例如Asia/KolkataEurope/Dublin

LocalDate ld = LocalDate.of( 2017 , Month.MAY , 3 ) ;
ZoneId z = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdt = ld.atStartOfDay( z ) ;

JDBC

JDBC的目的是在数据库的数据类型和Java的数据类型之间进行调解。

如果您的JDBC驱动程序符合JDBC 4.2或更高版本,则可以直接传递/获取这些Java.Time对象。使用PreparedStatement::setObjectResultSet::getObject

相关内容

最新更新