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

本文关键字:yyyy 转换 dd MM 日期 格式 | 更新日期: 2023-09-27 18:19:41

我正在尝试转换格式为1950年4月3日12:00:00 am 的日期

我正在从sql数据读取器中获取日期的值

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

dob字符串的输出为1950年4月3日12:00:00 AM

现在我想将其转换为1950年3月4日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

有人能告诉我我在这里做错了什么吗?

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

如果MbrNameReader[2]已经是DateTime,则无需重新解析。只需在转换为DateTime:后使用所需格式调用.ToString

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

要有一个精确的"格式",您需要它是一个字符串:

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

我将研究两个独立的问题:

  1. System.DateTimeParse.ParseExact由于此处的原因之一而引发格式异常

  2. 我相信你希望你的日期时间格式字符串是:

    "年月日hh:MM:ss tt"