簡體   English   中英

C#ASP.Net日期格式

[英]C# ASP.Net Date Format

我有一個將日期顯示為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"))

您可以使用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

由於您已經知道要使用的格式,因此可以只使用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)

如果您的系統日期格式為dd / mm / yyyy,TryParse將嘗試將您的字符串轉換為該格式。

如果您有01/14 / yyyy(根據系統時間無效),則Total不會初始化為您要分析的日期。 相反,它將初始化為默認日期時間。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM