尝试以不同于字符串的格式将字符串转换为日期时间

One*_*itz 2 c# string formatting datetime

所以我必须将(MM-dd-yyyy)格式的日期转换为(dd-MMM-yyyy).我最终做的是这个......

string strProvisionalDate = "04-22-2001";
string strFormat = "MM-dd-yyyy";
DateTime dtProvisional;
DateTime.TryParseExact(strProvisionalDate, strFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dtProvisional);
string strProvisionalDateConverted = dtProvisional.ToString("dd-MMM-yyyy");
string strFormatConverted = "dd-MMM-yyyy";
DateTime dtProvisionalConverted;
DateTime.TryParseExact(strProvisionalDateConverted, strFormatConverted, CultureInfo.InvariantCulture, DateTimeStyles.None, out dtProvisionalConverted);
Run Code Online (Sandbox Code Playgroud)

基本上,我将它转换为DateTime,将其转换为我想要的格式的字符串,然后将其转换回DateTime.它有效,但我很想知道是否有更好的方法来做到这一点......它看起来并不优雅.

编辑:原来,在这个dtProvisional和dtProvisionalConverted最终是相同的.所以我的新问题是,如何将MM-dd-YYYY格式的字符串转换为dd-MMM-yyyy格式的DateTime?dtProvisional进入SQL数据库,它必须是Date格式.

ben*_* f. 5

DateTime对象不会将日期/时间存储为格式,它会将其存储为自纪元以来的多个刻度.dtProvisional和dtProvisionalConverted DateTime之间应该没有区别作为对象(它们的不良值应该相同).使用字符串格式功能将DateTime输出到字符串时,始终可以更改字符串格式.

请参阅此MSDN文章的备注部分.

我会正确格式化您的日期以便输出:

String.Format("{0:dd-MMM-yyyy}",dt);