首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将Joda Time DateTime对象转换为SQL Server格式的字符串?

如何将Joda Time DateTime对象转换为SQL Server格式的字符串?
EN

Stack Overflow用户
提问于 2010-09-23 23:49:20
回答 3查看 44.2K关注 0票数 20

我使用Java语言中的Joda-Time库,并将日期和时间存储为org.joda.time.DateTime对象。

如何可靠地将此DateTime对象转换为可由SQL server (包括时区)正确解析的字符串,以便可以在INSERT SQL语句中使用它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-24 00:27:41

PreparedStatement#setTimestamp()中使用java.sql.Timestamp

ps.setTimestamp(1, new Timestamp(dateTime.getMillis()));

请注意,java.sql.Date只存储日期部分,而不存储时间部分。

票数 10
EN

Stack Overflow用户

发布于 2013-11-20 14:37:06

你可以试试这个简单的代码:

DateTime dt = new DateTime();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
String dtStr = fmt.print(dt);
票数 43
EN

Stack Overflow用户

发布于 2011-07-25 16:33:47

要小心考虑时区。使用new Timestamp()可能比较棘手,因为它需要以毫秒为单位的GMT时间。

    DateTime dt = new DateTime(2010, 1, 1, 14, 30, 59, 1, DateTimeZone.forOffsetHoursMinutes(7, 0));
    Timestamp ts = new Timestamp(dt.getMillis());
    System.out.println(dt); // prints 2010-01-01T14:30:59.001+07:00
    System.out.println(ts); // prints 2010-01-01 08:30:59.001

    DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
    String sqlTimeString = fmt.print(dt);
    System.out.println(sqlTimeString); // prints 2010-01-01 14:30:59
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3780120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档