【问题标题】:Converting any date format in MM/DD/YYYY format将任何日期格式转换为 MM/DD/YYYY 格式
【发布时间】:2012-04-30 11:05:18
【问题描述】:

我在使用不同的日期格式时遇到了困难。我正在使用asp.netc# 创建一个 Web 应用程序。我使用了JQuery 日历控件,它显示日期和时间。

然后我使用DateTime.Parse() 解析这个日期。如果服务器设置为印度日期格式,则应用程序会生成转换错误“字符串未被识别为有效的日期时间。”

有没有办法将任何日期格式与时间一起转换为MM/DD/YYYY 格式? 我知道我可以使用DateTime.ParseExact(),但它会再次使用特定格式。

非常感谢任何帮助。

感谢分享你的智慧。

【问题讨论】:

  • 您遇到问题的格式是什么?我们应该猜测吗?也请发布您的解析代码。
  • @Oded:我的系统在区域设置 (30-04-2012 16:40) 中设置为英语(印度)格式,而我得到 04/30/2012 16:40:10通过 JQuery 日期格式。所以我在使用 DateTime.Parse() 时遇到了转换错误。
  • 为什么不使用带有IFormatProvider 的重载,例如印度的CultureInfo 对象?
  • @Oded:这是一个例子。如果我的客户将应用程序托管在使用其他英语美国格式的服务器上,那么我无法将日期转换为英语格式。
  • 那你为什么不对用户所在的语言环境使用适当的CultureInfo

标签: asp.net c#-4.0 datetime


【解决方案1】:
Convert.ToDateTime(DateTime.Now, CultureInfo.GetCultureInfo("en-US")).ToString("MM/dd/yyyy hh:MM:ss");

您可以将 en-US 替换为 hi-IN 用于印地语日期或根据您的喜好。请点击链接。文化信息。

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.80).aspx

如果您不确定文化,请使用以下行。

Convert.ToDateTime(DateTime.Now, CultureInfo.CurrentCulture).ToString("MM/dd/yyyy hh:MM:ss");

参考这里http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture.aspx

您可以使用的其他方法是。

DateTime dt;
DateTime.TryParse(DateTime.Now.ToString(), out dt);

【讨论】:

  • 谢谢卡姆兰。请阅读我的 cmets 以回复 Oded。我不拘泥于任何特定的格式。
  • irfan 使用 try parse 它将尝试从任何格式解析日期。并将其存储在变量中。如果您不确定文化。
【解决方案2】:

您可以尝试 DateTime.Parse 或 DateTime.TryParse 方法

   DateTime.Parse(DateTime.Now).ToString("MM/dd/yyyy hh:mm tt");

另请参考

http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

谢谢

深浦

【讨论】:

    【解决方案3】:

    您可以为此创建一个扩展方法,您需要使用静态方法创建一个静态类。它将返回您在类中定义的日期格式

    public static class DateExtension
        {
            public static string GetDateTime(this DateTime? date)
            {
                if (date.HasValue)
                    return date.Value.ToString("dd-MMM-yyyy hh:mm tt");
                return string.Empty;
            }
        }
    

    现在在您的代码中,您可以使用此扩展程序,例如DateTime.GetDateTime() 它将以您在扩展库类中指定的格式返回日期和时间

    【讨论】:

      【解决方案4】:
      string s;  
       s = dt.ToString("MM-dd-yyyy");
      Console.WriteLine(s);//Displays 04-30-2012
      

      【讨论】:

        【解决方案5】:

        您可以使用此代码。

        public static CultureInfo CreateCulture(string shortDateFormat)
        {
        
                CultureInfo newCulture = CultureInfo.CreateSpecificCulture("en-US");
                newCulture.DateTimeFormat.ShortDatePattern = shortDateFormat;
                newCulture.DateTimeFormat.LongDatePattern = shortDateFormat;
        
                return newCulture;
        }
        

        【讨论】:

          猜你喜欢
          • 2017-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-09
          • 1970-01-01
          • 2023-03-15
          • 2022-01-25
          • 2012-03-05
          相关资源
          最近更新 更多