在 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();
}
然后您可以完全删除日期时间解析。
我正在编写一个具有逻辑的代码,但我无法与他们进行比较,如果有人能帮忙的话。
这个我有逻辑我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();
}
然后您可以完全删除日期时间解析。