如何将字符串格式化为日期时间
本文关键字:日期 时间 格式化 字符串 | 更新日期: 2023-09-27 18:20:00
我有一个devexpress dateedit对象,我从客户端将选定的日期发送到控制器,但我无法将字符串日期值转换为日期时间值
当我尝试时,我得到了这个错误=>string was not recognized as a valid DateTime
我的字符串日期值=>Thu Aug 28 2014 00:00:00 GMT+0300 (Turkey Daylight Time)
转换代码=>
DateTime startDate = DateTime.ParseExact(sDate, "ddd MMM d yyyy HH:mm:ss zzzz", CultureInfo.InvariantCulture);
我应该如何格式化这个字符串?
您需要用单引号"转义"无法识别的符号:
var sDate = "Thu Aug 28 2014 00:00:00 GMT+0300 (Turkey Daylight Time)";
var format = "ddd MMM dd yyyy HH:mm:ss 'GMT'zzzz '(Turkey Daylight Time)'";
DateTime startDate = DateTime.ParseExact(sDate, format, CultureInfo.InvariantCulture);
Console.WriteLine(startDate);
打印:
8/28/2014 12:00:00 AM
与第三组中的单个d
配合良好,仅为清晰起见添加了一个。
单引号或双引号表示文字字符串分隔符。您可以在这篇关于DateTime格式的msdn文章中阅读和查看更多示例
首先将日期字符串转换为日期,然后将日期转换为ISO并发送到服务器。这会奏效的。
var date = new Date("Thu Aug 28 2014 00:00:00 GMT+0300")
var sDate = date.toISOString();
请先尝试使用Regex删除未知格式。
var sDate = @"Thu Aug 28 2014 00:00:00 GMT+0300 (Turkey Daylight Time)";
var sDateOnly = Regex.Replace(sDate, @"'s*('(.*'))", m => string.Empty);
var f = @"ddd MMM d yyyy HH:mm:ss 'G'M'Tzzzz";
DateTime startDate = DateTime.ParseExact(sDateOnly, f, CultureInfo.InvariantCulture);