代码之家  ›  专栏  ›  技术社区  ›  Whimsical

集中设置dateTime.ToString()格式

  •  3
  • Whimsical  · 技术社区  · 15 年前

    如何设置 DateTime 集中格式化,以便在任何时候使用 DateTime.ToString() 在我的代码中,我得到ISO格式的字符串(例如: 2008-2-19 01:00:00 )或者( 2008-2-19

    6 回复  |  直到 15 年前
        1
  •  3
  •   Patrick Hofman Wahid Bitar    11 年前

    你应该用 CultureInfo 使用时控制格式 DateTime.ToString()

    在当前线程上设置CurrentCulture后,请尝试以下操作:

    DateTimeFormatInfo format = Thread.CurrentThread.CurrentCulture.DateTimeFormat;
    string dateTime = DateTime.Now.ToString(format.FullDateTimePattern);
    
        2
  •  2
  •   Iain    15 年前

    您可以将时间格式作为参数添加到tostring中,我总是使用这个作为参考

    Dim d = DateTime.Parse("2008-2-19 01:00:00")
    Assert.AreEqual("2008-2-19 01:00:00", d.ToString("yyyy-M-dd HH:mm:ss"))
    

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

    伊恩

        3
  •  2
  •   Albin Sunnanbo    15 年前

    你应该更新 System.Threading.Thread.CurrentThread.CurrentCulture 财产。

    这影响到所有人 DateTime.ToString() 在当前线程中。

        4
  •  2
  •   Whimsical    15 年前

    在Albin和Barry的答案的帮助下,iv编写了以下代码,以便在Global.asax中集中设置时间格式。

    using System.Globalization;
    using System.Threading;
    
    protected void Application_BeginRequest()
            {
                CultureInfo standardizedCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
                standardizedCulture.DateTimeFormat.DateSeparator = "-";
                standardizedCulture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd hh:mm:ss";
                standardizedCulture.DateTimeFormat.FullDateTimePattern = "yyyy-MM-dd hh:mm:ss";           
                standardizedCulture.DateTimeFormat.ShortDatePattern  = "yyyy-MM-dd"; 
                Thread.CurrentThread.CurrentCulture = standardizedCulture;
                Thread.CurrentThread.CurrentUICulture = standardizedCulture;
            } 
    
        5
  •  1
  •   Retired_User    15 年前

    可以使用扩展方法扩展datetime并创建ToISOString()。

    http://msdn.microsoft.com/en-us/library/bb383977.aspx 如何完成它。在extension方法中,可以使用参数按照需要格式化字符串,然后使用DateTime.ToISOString();也可以使用cultureinfo,正如Barry所说,但我不知道它是否适合您的需要。

        6
  •  0
  •   Oren A    15 年前

    我认为所要求的格式是。 DateTIme.Now.ToString() 会有一个 非常 对代码可读性(和可维护性)有不良影响。试图用一个自定义的行为覆盖一个众所周知的行为是不好的做法。
    什么我 做 DateTIme.Now.ToString(IsDefaultFormat) .
    现在您只需将扩展方法添加到 DateTime 它收到一个 bool ,如果bool设置为true,则返回 日期时间