2012-10-05 59 views
2

如果我運行以下命令:DateTimeFormatter

var newdate = new Date(); 
var dt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate"); 
var date = dt.format(newdate); 

我回來是這樣的2012年10月14日這是很好的,但是如果我把那個成WinJS.xhr一個URL它,它變成10? ?/?4?/?2012

樣的服務呼叫

var urlAddress ="http://www.communitymegaphone.com/ws/CMEventDS.svc/GetEventsByDistance?Lat='" + mapCenter.latitude + "'&Lon='" + mapCenter.longitude + "'&Dist=" + eventsByDistance + "&$filter=(starttime%20gt%20datetime'" + date + "')&$orderby=starttime%20asc&$format=json"; 

WinJS.xhr({ 
     type: "GET", 
     url: urlAddress 
    }).then(processSuccess, processError); 

代碼如果我使用普通的老JavaScript的日期時間,一切工作正常。

我錯過了某個地方的設置嗎?我也嘗試將url的編碼更改爲不同格式,但沒有運氣。

+0

嘿乍得...你可以編輯你的問題,並顯示更多的問題代碼?您是否有理由首先使用DateTimeFormatter,而不是僅僅使用JavaScript日期函數? – devhammer

+0

使用DateTimeFormatter,因爲它在那裏,而我正在玩Windows 8 html/js SDK – Chadit

回答

1

DateTimeFormatter專門用於面向用戶。當你創建一個url時,你不再是面向用戶的,而是後端面對的。您需要使用標準的日期格式(如iso 8601),而不是根據用戶的語言進行調整。由問號標識的字符是從左到右和從右到左的標記,確保字符串即使在嵌入式內容中也能正確顯示。

0

當你像這樣構建一個URL時,日期需要表示爲一個字符串。

我不知道爲什麼格式化程序沒有返回正確的字符串,但類似的東西有時表明輸入和輸出之間的編碼不匹配。

我想說,堅持JavaScript日期時間可能是去這裏的方式,除非你真的需要DateTimeFormatter出於某些特定的原因。

相關問題