我正在开发一个应用程序,我从用户那里获得各种日期时间格式(例如27/02/2016 12:00:00 AM
,02/28/16 12:00:00 AM
,4/18/2016 00:00:00
,...),我必须将所有格式转换为{{ 1}}。
我试过了:
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);
,null
和CultureInfo.InvariantCulture
替换为many questions中提到的关于将字符串转换为日期时间的CultureInfo.CurrentUICulture.DateTimeFormat
。
但我总是得到:
字符串未被识别为有效的DateTime
如果我这样编码,我可以转换CultureInfo.CurrentCulture
:
27/02/2016 12:00:00 AM
但那不是我想要的。
是否有使用一个行代码或至少一种方法将任何日期时间格式转换为DateTime.ParseExact(dateText,"d/M/yyyy hh:mm:ss tt", null);
?
答案 0 :(得分:1)
如果您知道所有可能的格式是什么,那么您应该调用DateTime.TryParseExact
的重载,该重载采用一系列允许的格式。否则,您应该调用DateTime.TryParse
,它将测试当前文化的所有可能的标准格式。
如果您知道文字有效,那么您可以改为使用ParseExact
或Parse
,然后直接在结果上调用ToString
。如果你确实使用了Try
方法之一,那么你首先要测试转换是否成功,如果是,那么你可以在结果上调用ToString
。
答案 1 :(得分:0)
你可以像这样转换它:
string text = dateTime.ToString("MM/dd/yyyy HH:mm:ss.fff",
CultureInfo.InvariantCulture);