我有2个DateTime对象,在使用ToShortDateString()函数后保存到文件中;字符串看起来像“12/15/2009”。我现在卡在这一部分,我想用这些字符串初始化DateTime对象,以便我可以比较日期日期之间的时间跨度。任何帮助表示赞赏。
答案 0 :(得分:7)
你可以尝试
DateTime date = DateTime.ParseExact("12/15/2009", "MM/dd/yyyy", null);
看看
答案 1 :(得分:2)
假设您正在以字符串格式回读文件中的日期
string date1 = "28/12/2009"; //this will be from your file
string date2 = "29/12/2009"; //this will be from your file
DateTime d1 = DateTime.ParseExact(date1,"dd/MM/yyyy", null);
DateTime d2 = DateTime.ParseExact(date2, "dd/MM/yyyy", null);
TimeSpan t1 = d2.Subtract(d1);
答案 2 :(得分:1)
在处理DateTime
/ string
转换时,我通常会尝试坚持这一点:
DateTime
对象。这样,在日期格式与您的日期格式不同的地方使用时,或者如果文件是在一个语言环境中创建,然后在另一个语言环境中进行解析,则代码不会失败。
private static string DateToString(DateTime input)
{
return input.ToString("yyyy-MM-dd");
}
private static DateTime StringToDate(string input)
{
return DateTime.ParseExact(input, "yyyy-MM-dd", CultureInfo.InvariantCulture);
}
答案 3 :(得分:0)
你试过DateTime.Parse(str)
吗?
答案 4 :(得分:0)
提取年,月,日,然后使用smth:
var dt = new DateTime(Year,Month,Day)
或者crete一个扩展方法来转换回dateTime这种字符串,但一般来说,这个扩展名的主体就像这样。