【问题标题】:convert date format M/d/yyyy to MM/dd/yyyy in c#在c#中将日期格式M/d/yyyy转换为MM/dd/yyyy
【发布时间】:2014-08-27 17:15:25
【问题描述】:

我正在尝试转换格式为 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 has some invalid arguments

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

谁能告诉我我在这里做错了什么?

【问题讨论】:

  • SQL数据库中列的数据类型是什么,如果是DateTime,那么只要取回DateTime类型的对象,然后格式化即可。演示格式与DateTime中如何存储日期无关,仅用于显示/演示目的。
  • 你熟悉.ToString("Format given here")
  • 是 MbrNameReader[2] 是 DateTime 类型

标签: c# telerik


【解决方案1】:

如果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);

【讨论】:

    【解决方案2】:

    为了有一个精确的“格式”,你需要它是一个字符串:

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

    【讨论】:

    • 只是一个小改动,d 应该是dd,两位数,因为这是 OP 的必需格式。
    【解决方案3】:

    我会看两个不同的问题:

    1. System.DateTimeParse.ParseExact 抛出格式异常,原因之一是 here

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多