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
问候。
答案 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
。
答案 2 :(得分:0)
使用您的代码:
string _final = (DateTime.Parse(date, System.Globalization.CultureInfo.InvariantCulture) + TimeSpan.Parse(duration)).ToString("yyyy-MM-dd HH:mm:ss");