2014-10-30 102 views
1
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 

問候。

回答

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

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

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

使用代碼:

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