Java 如何将带时区的PostgreSQL时间戳转换为DateTime?
这是我在申请表中得到的日期:Java 如何将带时区的PostgreSQL时间戳转换为DateTime?,java,postgresql,timestamp,jodatime,Java,Postgresql,Timestamp,Jodatime,这是我在申请表中得到的日期: String psqlDate = "2013-11-17 14:08:33+01"; 将psqlDate转换为jodaDateTime的最佳方式是什么 [编辑] 我可以使用DateTime方法。它可以与时间戳配合使用,时间戳通过T-2013-11-17T14:08:33+01将日期和时间信息分开 这应该适用于良好的模式: DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd..."
String psqlDate = "2013-11-17 14:08:33+01";
将psqlDate
转换为jodaDateTime
的最佳方式是什么
[编辑]
我可以使用DateTime
方法。它可以与时间戳配合使用,时间戳通过T-2013-11-17T14:08:33+01将日期和时间信息分开
这应该适用于良好的模式:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd...");
DateTime dt = DateTime.parse((String) obj, formatter);
带时区的PostgreSQL时间戳的正确模式是什么
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);
输出:
Sun Nov 17 14:08:33 IST 2013
比如:
SimpleDataFormat(“yyyy/mm/dd HH:mm:ss”).parse()
要将其转换为java对象,这里有一个真正的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);
您的代码看到日期是字符串,而不是java.sql.date
。您如何从数据库中获取此信息?换句话说,为什么不首先选择作为日期
?然后,您可以从java.sql.Date
/java.util.Date
使用JodaTime的转换例程。我不会直接从PostgreSQL获取数据。我从卡夫卡获取JSON格式的数据。获取时区信息的正确模式是什么?