在c#中将日期格式M / d / yyyy转换为MM / dd / yyyy

时间:2014-08-27 17:15:25

标签: c# telerik

我正在尝试转换日期格式为4/3/1950 12:00:00 AM

我从sql数据阅读器获取日期值

 string dob =Convert.ToString(MbrNameReader[2]);

dob 字符串的输出 4/3/1950 12:00:00 AM

现在我想将此转换为 04/03/1950 12:00:00 AM

我搜索谷歌获取帮助并尝试以这种方式执行此操作,这会抛出错误ParseExact有一些无效的参数

DateTime dob =Convert.ToDateTime(MbrNameReader[2]);
var date = DateTime.ParseExact(dob, "MM/d/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);

后来改为:

string dob =Convert.ToString(MbrNameReader[2]);
var date = DateTime.ParseExact(dob, "MM/d/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);

,它给出了以下错误:

Exception thrown executing coded step: '[VerifyAlerts_CodedStep4] : Verify the content of 'divs' with database contents'.
InnerException:
System.FormatException: String was not recognized as a valid DateTime.
   at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
   at System.DateTime.ParseExact(String s, String format, IFormatProvider provider, DateTimeStyles style)
   at Communicator.VerifyAlertContentsfirstFive.VerifyAlerts_CodedStep4() in c:\tfs\HASINC\Development\QAAutomation\Communicator\Alerts\VerifyAlertContents_firstFive.tstest.cs:line 190

有人可以让我知道我在这里做错了吗?

3 个答案:

答案 0 :(得分:4)

如果MbrNameReader[2]已经是DateTime,则无需重新解析它。转换为DateTime后,只需致电.ToString with the desired format

DateTime dob = (DateTime)MbrNameReader[2];
string formatted = dob.ToString(
    "MM/dd/yyyy hh:mm:ss tt", 
    CultureInfo.InvariantCulture);

答案 1 :(得分:0)

要获得精确的“格式”,您需要将其作为字符串:

string s = string.Format("{0:MM/dd/yyyy hh:mm:ss tt}", dateTimeValue);

答案 2 :(得分:0)

我会看两个不同的问题:

  1. System.DateTimeParse.ParseExact因其中一个原因here

  2. 引发格式异常
  3. 我相信您希望您的日期时间格式字符串为:

    " MM / dd / yyyy hh:mm:ss tt"