2013-05-12 52 views
0

如果例如一個servlet期望從用戶提交的表單中獲得一個日期,這個日期將作爲字符串作爲用戶參數的一部分發送。
我們如何知道如何將此字符串轉換爲日期?
我的意思是語言環境可能不同。可能是M/D/YD/M/Y
那麼我們怎麼能在服務器端知道這一點?我認爲這在其他語言中也是一個問題?例如。服務器端的腳本?我們如何知道用戶提交日期的格式?

+1

美國軍方要求格式爲dd mmm yyyy,例如01 Mar 2013,消除歧義 – 2013-05-12 19:55:23

+0

@ Zim-ZamO'Pootertoot:需要誰?瀏覽器? – Cratylus 2013-05-12 19:57:58

+0

由軍方或其承包商製作的網站的表單域,例如月份的下拉框將具有{Jan,Feb,Mar,...}等,而不是{01,02,03,...};通常如果一個網站使用mm/dd/yyyy或者dd/mm/yyyy,那麼這在表單字段中就已經清楚了,這樣用戶就不會感到困惑,但是一旦數據被服務器讀取(假設它保存爲字符串,而不是轉換爲UTC或其他),那麼它可能會變得模糊,如果數據上下文以某種方式丟失,而dd/mmm/yyyy永遠不會變得模糊 – 2013-05-12 20:05:51

回答

1

你無法確定。你必須根據語言環境做出假設,或者你需要指定一個特定的順序。像01/02/12這樣的日期可以是1901年2月12日或2001年,也可以是1912年或2012年的第一個二月,或者是1912年或2012年1月2日的第二個。從格式中無法知道。

BTW ISO-8601格式是y/m/d的順序。

+0

因此,如果我們在html頁面中使用圖形小部件,例如'jQuery'它會根據客戶端的語言環境發送日期,但是在服務器上我們無法知道客戶端語言環境?所以使用這種小部件是沒用的? – Cratylus 2013-05-12 19:56:23

+0

沒有語言環境的日期沒用。我很驚訝這不能被修復,但這是你在JavaScript端不得不做的。 – 2013-05-12 19:59:08

+0

那麼從'jquery-ui'輸入我看到:'05/20/2013' – Cratylus 2013-05-12 20:00:02

0

使用日期控件的格式,其中指定格式,通常基於用戶的區域設置。