繁体   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