C# 如何格式化包含日期的字符串,如;2016年10月17日星期一00:00:00 UTC-0300“;至年月日

C# 如何格式化包含日期的字符串,如;2016年10月17日星期一00:00:00 UTC-0300“;至年月日,c#,model-view-controller,telerik-mvc,C#,Model View Controller,Telerik Mvc,我使用的是分层telerik mvc网格,我需要将父网格中的字段作为参数传递给控制器操作,以便我可以使用它们来执行存储过程,该过程将在子网格中显示其结果 其中一个字段是日期,解析为“Mon-Oct 17 00:00:00 UTC-0300 2016”。由于Telerik将返回日期控制为字符串,因此我需要一个字符串参数,将其转换为日期格式,然后执行存储过程 我无法转换客户端中的字段,因为子网格的数据源是我声明控制器操作将接收的参数的地方。这就是为什么在调用存储过程之前,我需要在完成操作后将字符串转

我使用的是分层telerik mvc网格,我需要将父网格中的字段作为参数传递给控制器操作,以便我可以使用它们来执行存储过程,该过程将在子网格中显示其结果

其中一个字段是日期,解析为“Mon-Oct 17 00:00:00 UTC-0300 2016”。由于Telerik将返回日期控制为字符串,因此我需要一个字符串参数,将其转换为日期格式,然后执行存储过程

我无法转换客户端中的字段,因为子网格的数据源是我声明控制器操作将接收的参数的地方。这就是为什么在调用存储过程之前,我需要在完成操作后将字符串转换为所需的格式


非常感谢。

找到了示例字符串的格式:

DateTime.ParseExact("Mon Oct 17 00:00:00 UTC-0300 2016", @"ddd MMM dd hh:mm:ss ""UTC""zzz yyyy", CultureInfo.InvariantCulture)
        .ToString("dd/MM/yyyy"));

计算出示例字符串的格式:

DateTime.ParseExact("Mon Oct 17 00:00:00 UTC-0300 2016", @"ddd MMM dd hh:mm:ss ""UTC""zzz yyyy", CultureInfo.InvariantCulture)
        .ToString("dd/MM/yyyy"));

类似于
DateTime.Parse({your string}).ToString(“mm/dd/yy”)
这句话会抛出一个错误:“string未被识别为有效的DateTime”。我也尝试过Convert.ToDateTime(我的字符串),但运气不佳。如果真的是这样,telerik将返回日期控制为字符串,那么我建议不要使用telerik。您可以在控制器操作中使用datetime.TryParse()将日期字符串转换为datetime-还有其他转换方法,但这一种更安全。时区偏移量格式始终是UTC HHmm还是UTC+HHmm?如果是这样的话,事情会变得简单一点。(我同意@CetinBasoz的观点,除非你真的不得不这样做,否则你应该尽量避免使用字符串。如果真的没有办法避免的话,我会非常惊讶。)类似于
DateTime.Parse({your string})。ToString(“mm/dd/yy”)
这样的句子会抛出一个错误:“字符串未被识别为有效的DateTime”。我还尝试了Convert.ToDateTime(我的字符串),但没有成功。如果确实是这样,telerik将返回日期控制为字符串,那么我建议不要使用telerik。您可以使用DateTime.TryParse()在控制器操作中将日期字符串转换为DateTime-还有其他转换方法,但这一种更安全。时区偏移格式始终是UTC HHmm还是UTC+HHmm?如果是,这将使事情变得更简单。(我同意@CetinBasoz的观点,除非你真的必须避免使用字符串。如果真的没有办法避免,我会非常惊讶。)我建议引用
UTC
部分…这是否会返回UTC或原始时区的日期也不明显。效果很好。非常感谢!不完全是。更好的方法是:DateTime dt;if(DateTime.TryParseExact(“Mon Oct 17 00:00:00 UTC-0300 2016”,“ddd MMM dd HH:mm:ss utczz yyyyy”,new CultureInfo(“en-US),DateTimeStyles.None,out dt){Console.WriteLine(dt);}@JonSkeet“引用
UTC
部分”是什么意思?还有什么明显的方式来显示它所在的时区?我想我可以把
.ToUniversalTime()
ToLocalTime()
放在上面。@Quantic:我的意思是把字符串中的“UTC”改为“UTC”“为了明确U、T和C字符是按字面意思处理的,而不是作为格式说明符。至于时区部分,我要指定一个合适的
datetimestyle
。目前我真的不知道它会做什么…我建议引用
UTC
部分。。。还不清楚这是否会返回UTC或原始时区的日期。这就像一个符咒。谢谢!不完全是。更好的方法是:DateTime dt;如果(DateTime.TryParseExact(“2016年10月17日星期一00:00:00 UTC-0300”,“ddd-MMM-dd-HH:mm:ss-utczz-yyyy”,新文化信息(“en-US”),datetimestyle.None,out-dt)){Console.WriteLine(dt);}@jonsket“引用UTC部分”是什么意思?还有,用什么明显的方式来显示它所处的时区?我想我可以把
.ToUniversalTime()
.ToLocalTime()
贴在上面。@Quantic:我的意思是将字符串中的“UTC”改为“UTC”,以明确U、T和C是按字面意思处理的,而不是作为格式说明符。至于时区部分,我要指定一个合适的
datetimestyle
。现在我真的不知道它会做什么。。。