在 c# 中与 global.aspx 中的字符串进行比较的日期时间问题

Datetime issue to compare to strings in global.aspx in c#

我正在编写一个具有逻辑的代码,但我无法与他们进行比较,如果有人能帮忙的话。

这个我有逻辑我global.aspx

string sTime = System.Configuration.ConfigurationManager.AppSettings["StartTime"].ToString();
string eTime = System.Configuration.ConfigurationManager.AppSettings["EndTime"].ToString();
DateTime s = DateTime.Parse(sTime);//here i'm getting an Exception while debugging
DateTime e = DateTime.Parse(eTime);
DateTime nTime = DateTime.Now;
if (nTime >= s || nTime < s)
{
    InvokeUnderMaintenance();
}

异常

System.FormatException was unhandled by user code
HResult=-2146233033 Message=String was not recognized as a valid DateTime. Source=mscorlib StackTrace: at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at System.DateTime.Parse(String s) at EsiTrak.Web.MvcApplication.Application_PostAuthenticateRequest() in C:\Project\EsitrakWebEnablement\EsiTrak.Web\Global.asax.cs:line 138
InnerException:

message::An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code

这是我在 webconfig 文件中作为时间开始时间和结束时间的值

<add key="StartTime" value="12"/>
<add key="EndTime" value="18"/>

谁能告诉我如何使用 || 运算符或 && 运算符将开始时间和结束时间与当前时间进行比较?

您正在解析一个非日期时间格式的整数。所以parse无法识别格式。

如果要与小时数进行比较,可以按如下方式进行:

var startHour = Int32.Parse(sTime);
var endHour = Int32.Parse(eTime);
if (nTime.Hour >= startHour && nTime.Hour < eTime)
{
    InvokeUnderMaintenance();
}

然后您可以完全删除日期时间解析。