【发布时间】:2025-11-29 18:15:01
【问题描述】:
我有这种格式的日期“1999-05-31T13:20:00.000-05:00”我想添加几个小时或几天。有人可以建议如何使用这种格式和 AddDays 或 AddHours 吗?结果需要返回相同的格式。
【问题讨论】:
-
恭喜您使用 ISO8601 :-)
标签: c# .net vb.net datetime datetime-format
我有这种格式的日期“1999-05-31T13:20:00.000-05:00”我想添加几个小时或几天。有人可以建议如何使用这种格式和 AddDays 或 AddHours 吗?结果需要返回相同的格式。
【问题讨论】:
标签: c# .net vb.net datetime datetime-format
尝试使用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% 匹配您的格式。
【讨论】:
例子:
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")
【讨论】:
使用DateTime.Parse(...) 创建DateTime 对象。然后您可以添加天数和/或小时数,然后添加ToString() 以获取新字符串。
【讨论】:
看起来像 datetimeoffset。也许来自sql server?您应该能够使用 datetimeoffset 结构和 parse 方法。一旦有了 datetimeoffset 类型,您就可以使用 addhours 或相关方法。
【讨论】: