我有一个用户可以发布的事件和相关评论可以为每个事件添加,虽然我有我的数据库引擎驻留在我们的服务器但我住在东欧(Cy)我们有7-8小时时差。我正在使用事件和注释的Linq匿名类型,所以我想知道如何使用DateAdd函数来纠正评论日期时间的时差。
以下是我的linq表达式的示例;
var myEvents = from a in myEntities.AddEvents
where a.Authorized == true
orderby a.Id descending
select new
{
a.Id,
a.VenueName,
a.EventType,
a.Date,
a.StartTime,
a.EndTime,
a.Address,
a.Phone,
a.Reviews (This is for "Comments" and where i stuck!)
};
任何想法都赞赏!感谢
答案 0 :(得分:0)
您可以使用DateTime.AddHours
例如
var myEvents = from a in myEntities.AddEvents
...
select new
{
...
Date = a.Date.AddHours(7),
...
};
类似的方法可用于添加days,months,years,minutes,seconds或milliseconds。
但是,对于实体框架,您需要使用EntityFunctions.AddHours
或它的盟友。
答案 1 :(得分:0)
插入事件和注释时使用TimeZoneInfo.ConvertTime,例如
DateTime CommentDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Arabic Standard Time"));
请检查以下链接如何使用TimeZoneInfo.ConvertTime
http://www.xiirus.net/articles/article-_net-convert-datetime-from-one-timezone-to-another-7e44y.aspx
答案 2 :(得分:0)
问题现已解决,非常感谢!当我使用addHours函数修改受影响的列时,我基本上使用了foreach循环。这一切都正常工作。以下解决方案都不适用,但非常感谢!
答案 3 :(得分:0)
以下是Linq中DateAdd的语法:
DateTime.Now.AddMonths(YourInteger)
DateTime.Now.AddHours(YourInteger)
......等等。使用它的最好方法是创建一个新变量,否则会遇到错误。
DateTime yourDate = DateTime.Now.AddMonths(6);
在此之后,您可以使用您创建的变量来验证Linq中的数据。
如果你这样做:
new entityStuff{
field = o.date >= DateTime.Now.AddMonths(X) //months, days... you have other methods besides this one!
}
您将遇到错误。
你应该这样做,至少和我一起工作!
new entityStuff{
field = o.date >= yourDate
}
希望它能帮助你,它帮助了我=)