C# 将字符串解析为可用格式,并将其与当前日期进行比较&;时间
我正在尝试解析一个类似这样的C# 将字符串解析为可用格式,并将其与当前日期进行比较&;时间,c#,datetime,date-format,C#,Datetime,Date Format,我正在尝试解析一个类似这样的string 20190903T114500,000 并将其与当前时间和日期进行比较。当日期和时间相隔仅5分钟时,它应该发出警报 然而,我正在努力完成这项任务的每一部分。这个格式没有意义,我不能改变它,因为中间的那个代码>“t”/代码>。 首先,您应该解析> 指定的字符串(源代码/代码>)进入日期时间< /代码>。格式中有meaing(请查看标准以供参考)。唯一的困难是T和,,它们可以被转义: 然后找出区别: TimeSpan diff = time - DateT
string
20190903T114500,000
并将其与当前时间和日期进行比较。当日期和时间相隔仅5
分钟时,它应该发出警报
然而,我正在努力完成这项任务的每一部分。这个格式没有意义,我不能改变它,因为中间的那个代码>“t”/代码>。 首先,您应该<代码>解析> <代码>指定的字符串(<代码>源代码/代码>)进入<代码>日期时间< /代码>。格式中有meaing(请查看标准以供参考)。唯一的困难是
T
和,
,它们可以被转义:
然后找出区别:
TimeSpan diff = time - DateTime.Now;
最后,在需要时发出警报:
if (diff.TotalMinutes >= -5.0 && diff.TotalMinutes <= 5.0) {
//TODO: raise the alert here
}
if(diff.TotalMinutes>=-5.0&&diff.TotalMinutes首先使用DateTime.TryParseExact
将字符串转换为日期。上面示例的格式类似于yyyyMMddTHHmmss,fff
。一旦字符串转换为日期,您就可以使用DateTime。现在。减去函数以获得所需的输出。检查下面的检查普尔
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.Subtract(ParseDate("20190903T114500,000")).TotalMinutes);
}
private static DateTime ParseDate(string providedDate)
{
DateTime validDate;
string[] formats = { "yyyyMMddTHHmmss,fff" };
var dateFormatIsValid = DateTime.TryParseExact(
providedDate,
formats,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out validDate);
return dateFormatIsValid ? validDate : DateTime.MinValue;
}
请参阅和的文档哦,我的天,谢谢!我正在调整代码,它似乎可以工作!!!我终于理解了,谢谢!
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.Subtract(ParseDate("20190903T114500,000")).TotalMinutes);
}
private static DateTime ParseDate(string providedDate)
{
DateTime validDate;
string[] formats = { "yyyyMMddTHHmmss,fff" };
var dateFormatIsValid = DateTime.TryParseExact(
providedDate,
formats,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out validDate);
return dateFormatIsValid ? validDate : DateTime.MinValue;
}