繁体   English   中英

将日期字符串转换为日期时间

[英]convert date string to datetime

我使用dd-MMM-yyyy格式的日期字符串,并想将其转换为datetime ,当我使用以下代码时

DateTime.ParseExact("20-Oct-2012", "yyyy-MM-dd HH:mm tt", null) 

它导致错误

无法将字符串识别为有效的DateTime。

当我修改上面的代码

DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null) 

然后我得到日期时间的格式( mm/dd/yyyy ): 10/20/2012 12:00:00 AM

但我需要将其转换为yyyy/mm/dd格式。 请在这方面帮助我。

你应该试试这个

DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null).ToString("yyyy/mm/dd")

有关格式的更多信息, 请检查此

您需要区分两个独立的关注点:将原始字符串解析为抽象的DateTime表示,以及将后者转换回另一个字符串表示。

在您的代码中,您只需处理前者,并依靠隐式ToString()方法调用(使用系统的当前语言环境)将其转换回字符串。 如果要控制输出格式,则需要明确指定它:

// Convert from string in "dd-MMM-yyyy" format to DateTime.
DateTime dt = DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null);

// Convert from DateTime to string in "yyyy/MM/dd" format.
string str = dt.ToString("yyyy/MM/dd");

另请注意, mm格式说明符表示分钟; 月份以MM表示。

编辑 :“转换后的日期包含值“ 2012年10月20日12:00:00”。” 请注意您的意思。 构造的DateTime值包含解析后的日期和时间的抽象表示形式,该表示形式独立于任何格式。

但是,为了显示它,您需要将其转换回一些字符串表示形式。 当您在调试器中查看变量时(大概正在做),Visual Studio会自动在DateTime上调用无参数的ToString()方法,该方法将在当前区域性下呈现日期和时间(在您的情况下,假定日期和时间为美国文化)。

如上例所示,要更改此行为,使其以自定义格式呈现日期和时间,您需要显式调用ToString(string)重载(或其他重载之一)。

您可以尝试以下方法:

Convert.ToDateTime("20-Oct-2012").ToString("yyyy/MM/dd")

希望这会有所帮助!

暂无
暂无

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

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