2011-08-10 92 views
0

需要一些幫助!這是一個2部分的問題..我如何創建自定義日期?

我做了一個體面的數量的編程,但從來沒有真正與日期,一直谷歌搜索和所有,但沒有找到什麼。

第1部分:

因此可以說,我有一些變量: 公告日期adStartTime

我希望它是格式爲:YYYY/MM/DD HH:MM:SS 所以我只是做adStartTime =(一些日期格式化程序)+(2011/08/08 08:08:08)*哪些不工作

最新的正確方法是這樣嗎?我不斷收到錯誤,這樣.. ID喜歡做的日期,​​而不是使用字符串/ INT一切..

第2部分:

一旦我得到該格式的日期我需要插入到數據庫,我可以在該格式中插入日期嗎?或者我需要改變它?

因爲我需要時間是因爲我爲新公司證券設置自動化廣告,有時廣告會運行一天或者半天,所以我需要正確設置計時器。

感謝您的幫助..

回答

4

對於部分1,使用java.text.SimpleDateFormat,像這樣:

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date date = format.parse(datestring); 

如果你有一些代碼看起來像這樣的東西,並仍然得到錯誤,請編輯您問題包括您的實際代碼。

對於第2部分,您應該將日期作爲日期插入數據庫中,而不是字符串,因此沒有格式。

+0

lols我發現問題後有點想通了,謝謝! 問題:你認爲最好從用戶那裏得到一個日期字符串,然後解析它,或者讓用戶在日期中輸入日期,我擔心用戶可能會輸入錯誤的格式或產生錯誤.. – iCodeLikeImDrunk

+0

你在談論一個網絡應用程序?在大多數情況下,我認爲使用javascript datepicker比僅僅輸入文本好得多,只要它是一個很好的日期選擇器。專家用戶可能更喜歡簡單的文本輸入來寫入,但有了一個好的日期選擇器,應該可以忽略選擇器並且只是寫一個日期。如果您使用文本輸入,最小可用性至少告訴用戶需要哪種格式。 –

+0

日期選取器有時間嗎?因爲我需要準確的年/月/日小時:分:秒 – iCodeLikeImDrunk

1

1)對於日期,我建議你看一下Joda time

允許正是這樣的類型轉換的工作。

例如

public boolean isAfterPayDay(DateTime datetime) { 
if (datetime.getMonthOfYear() == 2) { // February is month 2!! 
    return datetime.getDayOfMonth() > 26; 
} 
return datetime.getDayOfMonth() > 28; 
} 

2),用於在DB存儲日期時間有持有不同的事情

有人說,你應該保存一個int和轉換多個陣營。喬達使這一點變得簡單。其他人(比如一些oracle DBA)似乎更喜歡日期類型。喬達也是如此。有一些在這裏Date storage discussion

問題如何你其實也可以取決於你的數據庫類型和DBA的偏好(如果有的話)的討論

我強烈建議你存儲日期時間與時區的存儲。

+0

在某些情況下,當需要複雜的操作和日期關係時,Joda時間很不錯(因爲Date有基於歷史設計缺陷的缺點)。另一方面,如果您只需要將日期傳遞給東西,則大多數東西都需要Java日期,所以更容易遵守它們,而不會增加在項目中競爭日期實現的複雜性。 –

+0

@Rasmus發佈的問題似乎吸引了喬達的優勢之一。將輸出轉換爲java日期很容易完成,節省的時間非常值得。 – stimpy

+0

是joda的自定義庫嗎? – iCodeLikeImDrunk

相關問題