我将数据存储到MySql日期时间字段中,并且我始终在那里保存C#的UTC日期(使用 someDate.ToUniversalTime())。UTC datetime转换为当地时间
我在中欧时区。
我有一个保存在2016年3月8日为2016年4月7日16:00:00(事件在将来当时设定)和当地时间此事件的一个日期是2016年4月7日17:00:00,所以当时保存为GMT + 1。我用someDate.ToLocalTime()获得正确的本地时间,它运作良好。
今天(四月),因为白天的事件,在三月底发生,我们有GMT + 2偏移现在someDate.ToLocalTime()展示箱多小时:2016年4月7日18:00 :00这是不正确的。
如何解决这个普遍? 我想保存UTC时间(与现在一样),然后应用某些使用用户当前时区的系统转换,并始终从我保存的UTC日期(当前DayLightSaving状态)中返回正确的本地时间。 它也应该返回2016-04-07 17:00:00而不是2016-04-07 18:00:00
使用'TIMESTAMP'而不是'DATETIME'然后设置'time_zone'会话变量,MySQL的将处理其余的事情。 – eggyal
这是一个桌面应用程序,还是一个网络应用程序?通常,只有桌面应用程序应该使用“ToLocalTime”和“ToUniversalTime”。 –