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