[英]Convert various datetime formats to an specific one
我正在开发一个应用程序,我从用户那里获取各种日期时间格式(例如27/02/2016 12:00:00 AM
、 02/28/16 12:00:00 AM
、 4/18/2016 00:00:00
,...) 并且我必须全部转换为M/dd/yyyy h:mm:ss
。
我试过:
DateTime.ParseExact(dateText,"M/d/yyyy HH:mm:ss", null);
DateTime.ParseExact(dateText,"M/d/yyyy h:mm:ss tt", null);
我还用CultureInfo.InvariantCulture
、 CultureInfo.CurrentUICulture.DateTimeFormat
和CultureInfo.CurrentCulture
替换了null
,它们在许多关于将字符串转换为日期时间的问题中提到。
但我总是得到:
字符串未被识别为有效的日期时间
如果我这样编码,我可以转换27/02/2016 12:00:00 AM
:
DateTime.ParseExact(dateText,"d/M/yyyy hh:mm:ss tt", null);
但这不是我想要的。
无论如何,是否可以使用一行代码或至少一种方法将任何日期时间格式转换为M/dd/yyyy HH:mm:ss
?
如果您知道所有可能的格式是什么,那么您应该调用DateTime.TryParseExact
的重载,它采用一组允许的格式。 否则,您可能应该调用DateTime.TryParse
,它将测试当前文化的所有可能的标准格式。
如果您知道文本有效,那么您可以改用ParseExact
或Parse
,然后直接对结果调用ToString
。 如果您确实使用了Try
方法之一,那么您首先必须测试转换是否成功,如果成功,则可以对结果调用ToString
。
你可以像这样转换它:
string text = dateTime.ToString("MM/dd/yyyy HH:mm:ss.fff",
CultureInfo.InvariantCulture);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.