簡體   English   中英

如何將Joda DateTime對象添加到我的MSSQL數據庫中

[英]How do i add a Joda DateTime Object into my MSSQL database

所以我有一個mssql數據庫,其DateTime類型的DateObjectCreated列。 它將接受到表中的值的格式為2013-12-23 12:23:56.567。 但是,我的Java程序正在創建格式為2013-12-23T 12:23:56.567Z的joda DateTime對象。 這不會插入我的數據庫。 我需要將“ 2013-12-23T 12:23:56.567Z”轉換為2013-12-23 12:23:56.567或找到一種方法來允許我的數據庫表接受“ 2013-12-23T 12:23”: 56.567Z“格式,對此問題的任何幫助將不勝感激非常感謝Billy Controller

Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String formattedDate = formatter.format(date);//this gives me the string as i need it 
DateTime dt = new DateTime(formattedDate);//here it adds the 'T' and 'Z'

我試過了

Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String formattedDate = formatter.format(date);//this gives me the string as i need it 
Date dt = formatter.parse(formattedDate);//here it gives me the same as new Date()
  1. DateFormat formatter = new SimpleDateFormat(“ yyyy-MM-dd”); 日期myDate = formatter.parse(date);

2. 在此處輸入鏈接描述 TO_DATE函數可以在Oracle / PLSQL中使用。 例如:

TO_DATE('2003/07/09','yyyy / mm / dd')將返回日期值為2003年7月9日

TO_DATE('070903','MMDDYY')將返回2003年7月9日的日期值

TO_DATE('20020315','yyyymmdd')將返回日期值為2002年3月15日

您的數據庫列具有DateTime類型。 日期的文本表示形式與保留日期無關。 無論您使用的是哪種API(JDBC,JPA,Hibernate),都會有類似“ setDateTime(Date date)”的方法,該方法使您可以傳入java.util.Date或java.sql.Date或Java long。 。 您可以使用Joda DateTime對象的毫秒值來創建API所需的任何內容。

你工作太辛苦了。

  1. 將您的Joda-Time DateTime對象轉換為java.util.Date 只需調用toDate()方法即可。
  2. 將Date實例傳遞到您的框架或SQL。

Ralf答案在第一部分是正確的,但最終是錯誤的,因為您無需處理毫秒。 Joda-Time知道如何轉換為java.util.Date。

org.joda.time.DateTime now = new org.joda.time.DateTime();
java.util.Date nowAsJavaUtilDate = now.toDate();

順便說一句, java.sql.Date類只是java.util.Date的一個非常薄的子類。 所以不要讓那丟給你。


將來,這將變得更加容易。 Java 8在java.time。*包中引入了新的JSR 310類。 這些類取代了java.util.Date/Calendar的混亂局面。 它們受到Joda-Time的啟發,但已完全重新設計。 由於它們是Java的內置部分,因此期望JDBC和相關框架進行更新以直接處理這些新類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM