.NET Дата Добавить Дни - PullRequest
2 голосов
/ 19 мая 2011

У меня есть дата в этом формате "1999-05-31T13: 20: 00.000-05: 00" Я хочу добавить к ней несколько часов или дней.Кто-нибудь может подсказать, как это сделать с этим форматом и AddDays или AddHours?Результат нужно вернуть в том же формате.

Ответы [ 4 ]

9 голосов
/ 19 мая 2011

Попробуйте использовать 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% соответствовать вашему формату.

2 голосов
/ 02 декабря 2011

Пример:

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")
0 голосов
/ 19 мая 2011

Это выглядит как datetimeoffset.Возможно с сервера sql?Вы должны быть в состоянии использовать структуру datetimeoffset и метод parse.Если у вас есть тип datetimeoffset, вы можете использовать addhours или связанные с ним методы.

0 голосов
/ 19 мая 2011

Используйте DateTime.Parse(...) для создания DateTime объекта.Затем вы можете добавить дни и / или часы, а затем ToString(), чтобы получить новую строку.

...