Я извлекаю данные из iSeries, где есть отдельные поля даты и времени. Я хочу присоединиться к ним в поле DateTime в моем проекте С#. Я не вижу способ добавить только время в поле DateTime. Как вы предлагаете это сделать?
Регистрация и время до DateTime в С#
Ответ 1
Как они хранятся? Предполагая, что часть даты хранится как DateTime
полуночи соответствующего дня, а время - TimeSpan
, вы можете просто добавить их.
DateTime date = ...;
TimeSpan time = ...;
DateTime result = date + time;
Ответ 2
Вы можете сделать это довольно легко:
DateTime dateOnly;
DateTime timeOnly;
...
DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);
TimeOfDay
возвращает a TimeSpan
, который вы затем добавляете к дате.
Изменить (спасибо комментаторам ниже) - чтобы быть в безопасности, используйте dateOnly.Date
, чтобы обеспечить только часть даты.
Ответ 3
Вы можете легко построить TimeSpan из своего поля "время".
Как только вы это сделаете, просто выполните:
TimeSpan time = GetTimeFieldData();
dateField = dateField.Add(time);
Ответ 4
Datetime date = new DateTime(Date1.Year, Date1.Month, Date1.Day, Time1.Hour, Time1.Minute, Time1.Second);
Ответ 5
Вы можете добавить TimeSpan
в DateTime
и написать что-то вроде этого.
// inside consuming function
ISeriesObject obj = getMyObject();
DateTime dt = getDate(obj) + getTime(obj);
private DateTime getDate(ISeriesObject obj)
{
//return a DateTime
}
private TimeSpan getTime(ISeriesObject obj)
{
//return a TimeSpan
}
Ответ 6
Это должно сделать:
var output = date.Date + time.TimeOfDay;
или
var output = new DateTime(date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second);
предположим, что обе переменные date
и time
являются значениями типа DateTime
Ответ 7
Обратите внимание, что добавление времени к дате не является вашей самой большой проблемой здесь. Как упоминал @Reed Copsey, вы просто создаете DateTime с даты, а затем .Add
время.
Однако вам нужно убедиться, что дата и время iSeries (скорее всего, время Unix) находятся в том же представлении, что и представление .Net. Таким образом, вам, скорее всего, придется преобразовать его, добавив его в DateTime от 1 января 1970 года.
Ответ 8
Не можете ли вы просто форматировать часть даты и времени даты как отдельные строки, а затем объединить их? Затем вы можете проанализировать строку обратно на объект DateTime