C# 将 12 小时时间解析为 datetime 24 小时
C# parse 12 hours time into datetime 24 hours
我有一个 12 小时格式的小时列表:
2:30, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00,
1:00, 2:00, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00,
12:00, 1:00, 2:00
第一个值2:30
是在晚上。
如果我创建一个
List<DateTime> dates = new List<DateTime>();
我如何解析上面的小时数以便创建一个 List<DateTime>
但小时数为 24 小时制?
问题是缺少小时 am/pm
信息,所以我不知道如何将它们解析为 24 小时,否则会重复。
那么,如果您的字符串数据是有序的(这是一个很大的假设),您可以尝试使用此代码
string data = "2:30, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 1:00, 2:00, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 1:00, 2:00";
string[] parts = data.Split(',');
DateTime lastInput = DateTime.MinValue;
List<DateTime> dates = new List<DateTime>();
string currentAMPM = "AM";
foreach(string s in parts)
{
DateTime temp;
if(DateTime.TryParse(s + " " + currentAMPM, out temp))
{
if(temp < lastInput)
{
currentAMPM = (currentAMPM == "AM" ? "PM" : "AM");
DateTime.TryParse(s + " " + currentAMPM, out temp);
}
dates.Add(temp);
lastInput = temp;
}
}
我有一个 12 小时格式的小时列表:
2:30, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00,
1:00, 2:00, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00,
12:00, 1:00, 2:00
第一个值2:30
是在晚上。
如果我创建一个
List<DateTime> dates = new List<DateTime>();
我如何解析上面的小时数以便创建一个 List<DateTime>
但小时数为 24 小时制?
问题是缺少小时 am/pm
信息,所以我不知道如何将它们解析为 24 小时,否则会重复。
那么,如果您的字符串数据是有序的(这是一个很大的假设),您可以尝试使用此代码
string data = "2:30, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 1:00, 2:00, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 1:00, 2:00";
string[] parts = data.Split(',');
DateTime lastInput = DateTime.MinValue;
List<DateTime> dates = new List<DateTime>();
string currentAMPM = "AM";
foreach(string s in parts)
{
DateTime temp;
if(DateTime.TryParse(s + " " + currentAMPM, out temp))
{
if(temp < lastInput)
{
currentAMPM = (currentAMPM == "AM" ? "PM" : "AM");
DateTime.TryParse(s + " " + currentAMPM, out temp);
}
dates.Add(temp);
lastInput = temp;
}
}