我的日期格式为“1999-05-31T13:20:00.000-05:00”我想为它添加几个小时或几天。有人可以建议如何使用这种格式和AddDays或AddHours吗?结果需要返回相同的格式。
答案 0 :(得分:9)
尝试使用DateTimeOffset.Parse
。然后使用AddDays
或AddHours
。
如果要保留解析后的相同时区偏移量,请务必使用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%匹配。
答案 1 :(得分: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")
答案 2 :(得分:0)
使用DateTime.Parse(...)
创建DateTime
对象。然后,您可以添加日期和/或小时,然后ToString()
以获取新字符串。
答案 3 :(得分:0)
看起来像datetimeoffset。也许来自sql server?您应该能够使用datetimeoffset结构和parse方法。一旦有了datetimeoffset类型,就可以使用addhours或相关方法。