首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架时间问题

实体框架时间问题
EN

Stack Overflow用户
提问于 2015-04-27 20:13:20
回答 1查看 62关注 0票数 0

我在使用实体框架将时间插入我的数据库时遇到了问题。

背景:我正在使用UTC时间的PC构建这个应用程序。一旦建立,我将把它部署在UTC + 1的服务器上。它连接的数据库也在UTC + 1的服务器上。

因此,当我在本地运行到我的PC上时,我输入了一个时间,比如上午9点,它在数据库中保存为上午10点这和预期的一样。

当我在服务器上运行时,我输入的时间是上午9点,它在数据库中保存为上午11点这不是我所期望的,因为它应该有小时差,而不是2小时。

有谁能帮上忙吗。我当前的代码是:

代码语言:javascript
复制
     static void Main(string[] args)
    {
        DateTime Start = Convert.ToDateTime("27/04/2015 08:00");
        DateTime End = Convert.ToDateTime("27/04/2015 16:00");


        // generate a schedule
        ASML_ScheduleHeader schedule = new ASML_ScheduleHeader(); 
        schedule.ScheduleId = Guid.NewGuid();

        TimeZone localZone = TimeZone.CurrentTimeZone;     
        schedule.StartTime = localZone.ToLocalTime(DateTime.SpecifyKind(Start, DateTimeKind.Utc));
        schedule.EndTime = localZone.ToLocalTime(DateTime.SpecifyKind(End, DateTimeKind.Utc));           


        using (CIC40PrimaryEntities _context = new CIC40PrimaryEntities())
        {
            try
            {

                Console.WriteLine("Adding Header");
                _context.ASML_ScheduleHeader.Add(schedule);
                _context.SaveChanges();
                Console.WriteLine("Schedule added");

            }
            catch (Exception ex)
            {
                Console.WriteLine("Schedule not added");
            }

            Console.Read();
        } 
    }
EN

回答 1

Stack Overflow用户

发布于 2015-04-27 21:03:58

我强烈建议您始终使用协调世界时,您始终可以在表示层中将DateTime转换为本地时间。

因此,我会像这样存储它;

代码语言:javascript
复制
schedule.StartTime = DateTime.SpecifyKind(Start, DateTimeKind.Utc);

如果您能给我们一些更明确的结果,也许是一些测试用例,这将有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29895430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档