相互添加两个日期

本文关键字:两个 日期 添加 | 更新日期: 2023-09-27 18:28:20

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

问候。

相互添加两个日期

使用 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

读取:自定义日期和时间格式字符串

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

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

使用您的代码:

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