1

我有一个用户可以发布的事件,并且可以为每个事件添加相关评论,虽然我的数据库引擎驻留在我们的服务器中,但我住在东欧(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!)
               };

任何想法表示赞赏!谢谢

4

4 回答 4

0

现在问题已经解决了,非常感谢!当我将主题列修改为使用 addHours 函数时,我基本上使用了 foreach 循环。现在一切正常。尽管非常感谢,但以下解决方案均不适用!

于 2013-04-04T22:09:52.150 回答
0

您可以使用DateTime.AddHours例如

var myEvents = from a in myEntities.AddEvents
               ...
               select new
               {
                   ...
                   Date = a.Date.AddHours(7),
                   ...
               };

类似的方法可以用于添加分钟毫秒

但是,对于实体框架,您需要使用EntityFunctions.AddHours或者它的盟友。

于 2013-04-03T20:04:15.903 回答
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
}

希望对你有帮助,对我有帮助 =)

于 2013-10-11T08:52:47.903 回答
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

于 2013-04-03T20:14:07.787 回答