2011-04-21 40 views
0

我插入一些數據到SharePoint列表(通過Web服務)和我的本地機器上我設置這樣一個日期字段(在這個例子中硬編碼)在不同的環境中以不同的方式解析DateTime?

<Field Name='TimeOnScene'>" + DateTime.Parse("13/12/2011 1:00").ToString("yyyy-MM-ddTHH:mm:ssZ") + "</Field> 

,它工作正常我本地機器上,但如果我把它發佈到我們的網站主機和運行完全相同的代碼,我得到

{"Message":"String was not recognized as a valid DateTime.","StackTrace":" 
// 
// 
System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)\r\n at System.DateTime.Parse(String s)\r\n "ExceptionType":"System.FormatException"} 

這怎麼可能?

在此先感謝。

編輯:

我們也從主機轉移到另外兩個星期前,從來沒有過這個問題。

+0

你有沒有檢查過你在web主機上得到DateTime的字符串...... – 2011-04-21 04:27:36

+0

對不起,我該怎麼做? – Nick 2011-04-21 04:28:54

+0

我的猜測是這個字符串與你所期待的不同。 – 2011-04-21 04:36:26

回答

2

使用DateTime.ParseExact而不是Parse,轉換將如下面的代碼。

CurDate = DateTime.ParseExact(YourDateString, "dd/MM/yyyy hh:mm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None) 
+0

@尼克,這個代碼不能滿足你嗎? – 2011-04-21 04:44:18

0

主機可以有不同的本地設置在那裏機器。在文檔中 The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.