繁体   English   中英

如何将字符串格式化为日期时间?

[英]How to format string to datetime?

我有devexpress dateedit对象,我从客户端将选定的日期发送到控制器,但是我无法将字符串日期值转换为datetime值

尝试时出现此错误=> 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM