繁体   English   中英

将各种日期时间格式转换为特定的格式

[英]Convert various datetime formats to an specific one

我正在开发一个应用程序,我从用户那里获取各种日期时间格式(例如27/02/2016 12:00:00 AM02/28/16 12:00:00 AM4/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.InvariantCultureCultureInfo.CurrentUICulture.DateTimeFormatCultureInfo.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 ,它将测试当前文化的所有可能的标准格式。

如果您知道文本有效,那么您可以改用ParseExactParse ,然后直接对结果调用ToString 如果您确实使用了Try方法之一,那么您首先必须测试转换是否成功,如果成功,则可以对结果调用ToString

你可以像这样转换它:

string text = dateTime.ToString("MM/dd/yyyy HH:mm:ss.fff",
                                CultureInfo.InvariantCulture);

暂无
暂无

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

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