我从具有单独的日期和时间字段的iSeries中检索数据。我想将它们加入到我的C#项目中的DateTime字段中。我没有看到添加一个时间到DateTime字段的方法。你会如何建议完成这个?在C中加入日期和时间#
回答
它们是如何存储的?假设日期部分的存储时间为当天午夜的DateTime
,时间为TimeSpan
,您可以添加它们。
DateTime date = ...;
TimeSpan time = ...;
DateTime result = date + time;
你可以很容易地从你的“时间”字段构造一个TimeSpan。
一旦你的,只是做:
TimeSpan time = GetTimeFieldData();
dateField = dateField.Add(time);
你可以做到这一点很容易:
DateTime dateOnly;
DateTime timeOnly;
...
DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);
TimeOfDay
返回TimeSpan
,然后您可以添加到日期。
编辑(感谢以下评论者) - 为了安全起见,请使用dateOnly.Date
以确保仅限日期部分。
一个忠告给观众的这里你必须确保'DateTime dateOnly'只包含一个日期,否则,一个足够大的TimeSpan,当你预制'Add'时,你会增加一天! – Coops 2014-09-30 15:02:28
@CodeBlend是正确的,这发生在我身上。覆盖自己的最佳方式是:'DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);' – 2016-03-17 18:56:56
良好的捕获,@RodolfoDeLosSantos!我发送了更新解决方案的请求以符合您的建议。 – 2016-08-22 07:56:34
Datetime date = new DateTime(Date1.Year, Date1.Month, Date1.Day, Time1.Hour, Time1.Minute, Time1.Second);
请注意,将时间添加到日期并不是您最大的问题。正如@Reed Copsey所提到的,你只需要创建一个DateTime,然后从.Add
开始创建DateTime。
但是,您需要确保iSeries日期和时间(最可能是Unix时间)与.Net表示形式具有相同的表示形式。因此,您最有可能需要将其转换为1970年1月1日的DateTime。
您可以将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
}
这应该这样做:
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
- 1. 加入包含日期和时间信息为日期时间
- 2. 加入日期和时间在模型中的日期时间Rails 5
- 3. 在c中获取日期和时间
- 4. 按日期和时间加入范围
- 5. 在oracle11g中插入日期和时间
- 6. 在PHP中添加日期和时间
- 7. C#和xml:XS:日期时间和日期时间comparesion
- 8. C++日期和时间
- 9. 在android中比较输入日期和时间与当前日期和时间
- 10. 在oracle 10g sql中加入日期和时间到时间戳中加
- 11. 在GWT中添加日期和时间到当前日期和时间
- 12. C#:Unix时间戳和日期时间
- 13. 如何在C#中将日期和时间插入DateTimePicker?
- 14. 在C中添加时间到日期时间#
- 15. 检查日期时间输入和数据库日期时间
- 16. 日期时间在VB.NET和C#
- 17. 使用日期和时间在C++
- 18. Play中的输入!日期和时间?
- 19. 添加日期参数和时间参数单日期时间
- 20. 向上舍入时间和日期C# - 当时间= 00:00:00时增加日期为1
- 21. C#中的日期时间添加日期
- 22. 无法将日历选定日期放入日期时间C#
- 23. 如何结合日期时间日期是日期时间和时间是字符串在c#
- 24. 日期时间在C#+比较日期时间
- 25. 插入日期时间使用C#
- 26. 插入日期时间(从C#到MySQL)
- 27. C#插入日期时间失败
- 28. 添加前导零日期时间C#
- 29. C#日期选择器24小时日期和时间
- 30. 如何在日志文件中引入日期和时间
我认为这个会在这种情况下对我最好。谢谢! – 2010-06-29 16:24:16
这只会在日期变量具有时间部分00:00:00时才起作用,否则时间变量将被添加到顶部日期,这将是意想不到的结果。 – batmaci 2016-08-12 22:43:11
@batmaci是的,这是在答案中具体说明。 – 2016-08-12 22:44:26