Windows 8 日期时间格式化程序

Windows 8 日期时间格式化程序,windows-8,globalization,winjs,Windows 8,Globalization,Winjs,如果我运行以下命令: 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 urlAddres

如果我运行以下命令:

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的编码更改为不同的格式,但没有成功。

当您构建这样的url时,日期需要表示为字符串

我不确定格式化程序为什么没有返回正确的字符串,但类似的事情有时表明输入和输出之间的编码不匹配


我要说的是,坚持使用JavaScript datetime可能是一种方法,除非您出于某种特定原因确实需要DateTimeFormatter。

DateTimeFormatter专门面向用户。创建url时,您不再面向用户,而是面向后端。为此,您需要使用标准日期格式(如iso 8601),而不是根据用户的语言进行调整。问号标识的字符是从左到右和从右到左的标记,确保字符串即使在嵌入内容中也能正确显示。

Hey Chad…您能编辑您的问题并显示更多有问题的代码吗?您首先使用DateTimeFormatter而不仅仅是使用JavaScript日期函数有什么原因吗?使用DateTimeFormatter是因为我在玩Windows 8 html/js SDK时它就在那里