[英]How to parse a angular-ui dateTime string to c# datetime
我知道有關此的許多問題已得到解答。 我已經嘗試了大約3個小時,但沒有運氣。 我正在使用angular-ui日期時間選擇器,格式為
“2015-02-08T06:00:00.000Z”
錯誤消息是無法將字符串識別為日期時間
在System.DateTime.ParseExact(String s,字符串格式,IFormatProvider提供程序)在System.DateTimeParse.ParseExact(String s,字符串格式,DateTimeFormatInfo dtfi,DateTimeStyles樣式)在c中的TransparentEnergy.Controllers.apiDocumentController.d__2.MoveNext() \\ Development \\ TransparentEnergy \\ TransparentEnergy \\ ControllersAPI \\ apiDocumentController.cs:第67行
調節器
string docDate = provider.FormData["DocumentDate"];
model.DocumentDate = DateTime.ParseExact(docDate, "yyyy-MM-dd'T'HH:mm:ss'Z'", CultureInfo.GetCultureInfo("en-US"));
角UI
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = true;
};
$scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
$scope.format = $scope.formats[3];
更新
string docDate = provider.FormData["DocumentDate"];
model.DocumentDate = DateTime.ParseExact(docDate, "yyyy-MM-dd'T'HH:mm:ss.fff'Z'", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
是否有任何特定原因導致您不使用DateTime.Parse()?
您指定的格式為"2015-02-08T06:00:00.000Z"
是ISO日期時間格式。 請參閱http://en.wikipedia.org/wiki/ISO_8601
您顯示的是UTC時間和使用時間
DateTime.Parse("2015-02-08T06:00:00.000Z")
您可以獲得本地日期時間。 根據服務器\\ pc的時區,您正在運行代碼。
您可以使用
DateTime.Parse("2015-02-08T06:00:00.000Z").ToUniversalTime()
獲得UTC。 有幫助嗎?
查看您傳遞的格式:
"yyyy-MM-dd'T'HH:mm:ss'Z'"
那有沒有毫秒,而你的樣品是"2015-02-08T06:00:00.000Z"
里面確實有毫秒。 看起來像您想要的:
"yyyy-MM-dd'T'HH:mm:ss.fff'Z'"
另外,我建議使用CultureInfo.InvariantCulture
而不是美國的文化-在這種情況下,它們都將發揮相同的作用,但是我認為當您基本上是在談論機器對機器時,使用不變文化更為清晰格式。
您還應該包括DateTimeStyles.AssumeUniversal
以考慮Z
試試這種格式
yyyy-MM-dd'T'HH:mm:ss.fff'Z'
var date = DateTime.ParseExact("2015-02-08T06:00:00.000Z", "yyyy-MM-dd'T'HH:mm:ss.fff'Z'", CultureInfo.InvariantCulture);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.