簡體   English   中英

如何將angular-ui dateTime字符串解析為C#datetime

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM