【问题标题】:How to get date format in required format like 'dd/MM/yyyy' , 'MMddyyyy', MMM, etc如何获取所需格式的日期格式,如“dd/MM/yyyy”、“MMddyyyy”、MMM 等
【发布时间】:2015-06-26 12:37:12
【问题描述】:

我有 'MM/dd/yyyy' 格式的日期,我需要根据输入格式获取日期格式。输入格式可以是 'MMddyyyy', 'yyyy-MM-dd' , MM, MMM, MMMM, yyyy。

格式:'MMddyyyy':: 输出应为:'02232015'

格式:'yyyy-MM-dd':: 输出应为:'2015-02-23'

格式:'yyyy/MM/dd':: 输出应为:'2015/02/23'

格式:'MM':: 输出应为:'02'

格式:'MMM':: 输出应为:'Feb'

格式:'MMMM':: 输出应为:'February'

我正在尝试

var dateTime = DateTime.ParseExact(date, format, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);

但它不起作用。它给出了无效的日期格式错误。

那么任何人都可以帮助我实现这一目标。

【问题讨论】:

  • DateTime.Parse 是您如何将字符串数据获取/转换为 DateTime var,格式表示字符串的模式。如果这是您所追求的,您将永远不会得到只是“Feb”的 DAteTime 变量。它不会“格式化日期”,因为日期没有格式 - 它们只是一个值。

标签: c# date datetime


【解决方案1】:

我认为您对将字符串解析为DateTime 与获取DateTime特定 字符串表示感到困惑。

如果您想获得DateTime 的文本表示(如您所说的2015-02-232015/02/23February),您可以将.ToString() method基于英语的 文化。

对于带有顺序的字符串结果,您可以将它们作为;

yourDateTimevalue.ToString("MMddyyyy", new CultureInfo("en-US")); // 02232015
yourDateTimevalue.ToString("yyyy-MM-dd", new CultureInfo("en-US")); // 2015-02-23
yourDateTimevalue.ToString("yyyy/MM/dd", new CultureInfo("en-US")); // 2015/02/23
yourDateTimevalue.ToString("MM", new CultureInfo("en-US")); // 02
yourDateTimevalue.ToString("MMM", new CultureInfo("en-US")); // Feb
yourDateTimevalue.ToString("MMMM", new CultureInfo("en-US")); // February

如果你试着说喜欢;你有这些格式化的字符串,你想把这些格式化的字符串解析为DateTime,你可以使用this DateTime.ParseExact overload,它采用string[]作为格式。

var formats = new string[]
{
     "MMddyyyy",
     "yyyy-MM-dd",
     "yyyy/MM/dd",
     "MM",
     "MMM",
     "MMMM"
}

var dateTime = DateTime.ParseExact(date, formats, new CultureInfo("en-US"), DateTimeStyles.None);

【讨论】:

  • 我试过 yourDateTimevalue.ToString("MMddyyyy", new CultureInfo("en-US"));这是工作。非常感谢。
  • 嗨,我正在尝试解析为 yourDateTimevalue.ToString("MMyyyy", new CultureInfo("en-US"));你的日期时间值为“022015”,它给出错误“字符串未被识别为有效的日期时间。”。
  • @Hanumantha 您仍然将解析获取日期时间的字符串表示混合在一起。请重新阅读我的答案。 DateTime.ToString() 方法以您想要的特定格式生成DateTimestring 表示。如果你想解析一个stringDateTime,你需要使用ParseExact或者TryParseExact这样的方法; var dateTime = DateTime.ParseExact("022015", "MMyyyy", null)
【解决方案2】:

您可以使用带格式的 ToString()

DateTime.Now.ToString("MMddyyyy")

【讨论】:

    【解决方案3】:

    试试这个!

    string format="MMddyyyy";
    DateTime.Now().ToString(format);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2016-05-20
      • 2021-08-23
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多