c# ASP.净日期格式
本文关键字:格式 日期 ASP | 更新日期: 2023-09-27 18:03:16
我有一个数据库,它显示日期为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。
改变 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)
可以使用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
如果您的系统日期格式是dd/mm/yyyy, TryParse将尝试将您的字符串转换为这种格式。
如果您有01/14/yyyy,根据您的系统时间是无效的,Total将不会初始化为您正在解析的日期。相反,它将初始化为默认日期时间。
请在所有地方使用一致的日期格式。"dd/mm/yyyy"或"mm/dd/yyyy"