如何将PostgreSQL时间戳与时区转换为DateTime?

时间:2014-01-07 13:10:51

标签: java postgresql timestamp jodatime

这是我在申请中的日期:

String psqlDate = "2013-11-17 14:08:33+01";

psqlDate转换为joda DateTime的最佳方法是什么?

[编辑]

我可以使用DateTime parse方法。它的工作正常,时间戳whitch已经用T - 2013-11-17T14:08:33+01分割了有关日期和时间的信息。

这应该有良好的模式:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd...");
DateTime dt = DateTime.parse((String) obj, formatter);

带时区的PostgreSQL时间戳的正确模式是什么?

3 个答案:

答案 0 :(得分:5)

这是一个真正的Joda答案。您是否尝试过org.joda.time.format.DateTimeFormat中的模式?

“yyyy-MM-dd HH:mm:ssZ”

我发现您的时区偏移仅以小时为单位,而不是以分钟为单位。所以也许你需要简单的预处理和双Z这样:

String psqlDate = "2013-11-17 14:08:33+01";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ssZZ");
DateTime dt = DateTime.parse(psqlDate + ":00", formatter);

答案 1 :(得分:2)

你可以试试这个

    String psqlDate = "2013-11-17 14:08:33+01";
    Date date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss'+'01").parse(psqlDate);
    System.out.println(date);

Out put:

    Sun Nov 17 14:08:33 IST 2013

答案 2 :(得分:0)

using the SimpleDateFormat 就像是: SimpleDateFormat(“yyyy / mm / dd HH:mm:ss”)。parse() 将其转换为java date对象