2011-05-19 256 views
2

我有這種格式的日期「1999-05-31T13:20:00.000-05:00」我想給它添加幾個小時或幾天。有人可以建議如何使用這種格式和AddDays或AddHours?結果需要返回相同的格式。.NET日期添加日期

+0

使用ISO8601 :-) – SSS 2011-05-19 05:59:41

回答

9

嘗試使用DateTimeOffset.Parse。然後使用AddDaysAddHours

如果您想保留您解析的相同時區偏移量,則使用DateTimeOffset而非DateTime是很重要的。

var dateTimeOffset = DateTimeOffset.Parse("1999-05-31T13:20:00.000-05:00"); 
var newDateTimeOffset = dateTimeOffset.AddHours(1); 
var newDateTimeString = newDateTimeOffset.ToString("O"); 

,如果你不喜歡的方式 「O」 的格式,您可以使用此:

var newDateTimeString = newDateTimeOffset.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK") 

這將100%匹配到你的格式。

+0

將日期添加到datefomat後,它可以保持相同的格式嗎? – 2011-05-19 01:08:03

+0

@ user608576 - 您可以使用ToString()將其轉換爲任何格式的字符串。 – 2011-05-19 01:24:02

0

使用DateTime.Parse(...)創建DateTime對象。然後你可以添加幾天和/或幾小時,然後ToString()獲得新的字符串。

+0

將它返回相同的格式恭喜? – 2011-05-19 00:56:12

+0

這取決於您在ToString()中指定的格式 – 2011-05-19 00:57:10

0

看起來像datetimeoffset。也許從SQL Server?你應該能夠使用datetimeoffset結構和解析方法。一旦你有一個datetimeoffset類型,你可以使用addhours或相關的方法。

2

例子:

txt_del.Text = Calendar1.SelectedDate.ToString("MM/dd/yyyy"); 
/* for date picking textbox*/ 

double d2 = double.Parse(txt_till.Text); 
/*second textbox for number of days to add*/ 

DateTime tom = Calendar1.SelectedDate.AddDays(d2); 
/*for adding number of days to selected date*/ 

txt_total.Text = tom.ToString("MM/dd/yy")