Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#ASP.Net日期格式_C#_Asp.net_Date_Datetime - Fatal编程技术网

C#ASP.Net日期格式

C#ASP.Net日期格式,c#,asp.net,date,datetime,C#,Asp.net,Date,Datetime,我有一个数据库,它在我的listview中显示日期为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(

我有一个数据库,它在我的listview中显示日期为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;                          
                    }
                }
            }
Label TimeLabel=(Label)e.Item.FindControl(“TPTIMEIN”);
if(TimeLabel!=null)
{
日期时间合计;
if(DateTime.TryParse(TimeLabel.Text,out Total)==true)
{
if(总
但是,这里有一个问题,上面的代码似乎只适用于旧格式dd/mm/yyyy。因此,它将突出显示01/11/yyyy,但不会突出显示01/14/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)


如果系统日期格式为dd/mm/yyyy,则TryParse将尝试将字符串转换为此格式

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


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

注意日期格式字符串应为
mm/dd/yyyyy HH:mm:ss
。特别是,您犯了一个典型的错误,将分钟放在日期中(以及没有时间在2小时内).:)@Chris谢谢..修复。谢谢你的帮助,这应该可以,但我开始认为我必须去搞乱SQL日期格式。当我在VB本地服务器上运行应用程序时,它将显示为mm/dd/yyyy,但当上传到web服务器上时,它将返回到dd/mm/yyyy。如果你对此问题有任何想法,请告诉我!!!
 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)