相互添加两个日期

时间:2014-10-30 09:23:41

标签: c# datetime

string final = Convert.ToString(DateTime.Parse(date, System.Globalization.CultureInfo.InvariantCulture) + TimeSpan.Parse(duration));

嗨,我使用上面的代码来将两个日期添加到彼此。它在Windows上运行良好,并以正确的方式返回所需的格式yyyy-MM-dd HH:mm:ss。但是,在使用Mono构建Linux时,它返回以下格式dd/MM/yyyy HH:mm:ss,这不是我想要的。

如何指定我只想要第一个格式而不需要其他格式?我尝试过使用ParseExact,但效果并不好。我听说过ParseExact真的不需要它吗?

以下是输入示例:

string date = "2014-10-30 10:00:04"; // On windows

string duration = "05:02:10"; // duration to be added to date

问候。

3 个答案:

答案 0 :(得分:2)

您可以使用DateTime对象的ToString()方法。

var dt = DateTime.Now;
dt.ToString("yyyy-MM-dd HH:mm");

答案 1 :(得分:2)

使用ToString("yyyy-MM-dd HH:mm:ss")代替Convert.ToString

string date = "2014-10-30 10:00:04";  
string duration = "05:02:10";  
DateTime dt1 = DateTime.Parse(date, CultureInfo.InvariantCulture);
TimeSpan ts = TimeSpan.Parse(duration, CultureInfo.InvariantCulture);
DateTime dtFinal = dt1.Add(ts);
string final = dtFinal.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

Convert.ToString使用您当前的文化日期分隔符,使用CultureInfo.InvariantCulture

阅读:Custom Date and Time Format Strings

答案 2 :(得分:0)

使用您的代码:

string _final = (DateTime.Parse(date, System.Globalization.CultureInfo.InvariantCulture) + TimeSpan.Parse(duration)).ToString("yyyy-MM-dd HH:mm:ss");