【问题标题】:C# ASP.Net Date FormatC# ASP.Net 日期格式
【发布时间】:2015-07-16 15:09:30
【问题描述】:

我有一个将日期显示为 dd/mm/yyyy 的数据库在我的列表视图中我已将其更改为显示为 mm/dd/yyyy

<asp:Label ID="TPTIMEIN" runat="Server" Text='<%#Eval("TPTIMEIN", "{0: MM/dd/yyyy HH:mm:ss}") %>' />

如果日期超过 2 小时,我有另一部分代码将字体颜色更改为红色

Label TimeLabel = (Label)e.Item.FindControl("TPTIMEIN");
            if (TimeLabel != null)
            {

                DateTime Total;
                if (DateTime.TryParse(TimeLabel.Text, out Total) == true)
                {
                    if (Total < DateTime.Now.AddHours(-2))
                    {

                        TimeLabel.ForeColor = System.Drawing.Color.Red;                          
                    }
                }
            }

但是,问题在于上面的代码似乎只适用于旧格式 dd/mm/yyyy。因此它会突出显示 01/11/yyyy 而不是 01/14/yyyy,因为它没有识别它。我将如何改变它?

希望这是有道理的.....

编辑

我已经尝试过类似的方法,但我不能以这种方式使用“

if (Total < DateTime.Now.AddHours(-2).ToString("MM.dd.yyyy"))

【问题讨论】:

    标签: c# asp.net date datetime


    【解决方案1】:

    由于您已经知道要使用的格式,您可以直接使用 DateTime.TryParseExact。

    改变

     if (DateTime.TryParse(TimeLabel.Text, out Total) == true)
    

    if(DateTime.TryParseExact(TimeLabel.Text,"MM/dd/yyyy HH:mm:ss",null, DateTimeStyles.None, out Total) == true)
    

    【讨论】:

    • 注意日期格式字符串应该是MM/dd/yyyy HH:mm:ss。特别是你犯了一个典型的错误,那就是在约会中加入分钟(以及没有时间在 2 小时内测量的事情)。 :)
    • @Chris 谢谢 .. 已修复。
    • 感谢您的帮助,这应该可以,但我开始认为我将不得不处理 SQL 日期格式。当我在 VB 本地服务器上运行应用程序时,它会显示为 mm/dd/yyyy,但是当我上传到 Web 服务器上时,它会返回到 dd/mm/yyyy 如果您对此问题有任何想法,请告诉我!!!
    【解决方案2】:

    您可以使用 DateTime.TryParseExact 并提供您更改为的日期格式。 假设您更改了应用中其他任何地方的格式。

    例子:

       DateTime parsedDateValue;
        string date = "05/14/2014";
        DateTime.TryParseExact(date, "MM/dd/yyyy", Thread.CurrentThread.CurrentCulture, System.Globalization.DateTimeStyles.None, out parsedDateValue);
        Console.WriteLine(parsedDateValue.ToShortDateString());
    
    //prints 5/14/2014
    

    【讨论】:

      【解决方案3】:

      如果您的系统日期格式是 dd/mm/yyyy,TryParse 会尝试将您的字符串转换成这种格式。

      如果您有 01/14/yyyy,根据您的系统时间,这不是有效的,Total 将不会被初始化为您正在解析的日期。相反,它将初始化为默认日期时间。

      请在所有地方使用一致的日期格式。 “dd/mm/yyyy”或“mm/dd/yyyy”

      【讨论】:

        猜你喜欢
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多