所以我有这个应用程序从手机接收包括gps时间是UTC的包。我现在将这个存储在我的mysql数据库中。在MySQL日期时间utc时间的错误表示
我有两个日期时间字段,其中包含从手机和服务器时间的时间。
我的查询看起来像这样:INSERT INTO GeoLocation中(时间,ServerTime)VALUES(FROM_UNIXTIME(1353438497),UTC_TIMESTAMP())
我简化,并删除了所有其他值。目前的utc unix时间戳现在是:1353438597协调一致http://www.unixtimestamp.com/index.php所以我的其他手机时间戳是100秒,非常合理。然而现在却变成了有趣的事情。我应该提到我住在瑞典+1时区和服务器在瑞典时间,最有可能配置为瑞典时间
当我使用phpmyadmin查看刚插入的值它说时间是2012-11-20 20 :08:17但服务器时间是2012-11-20 19:08:23。所以即使这两个都是正确的utc时间,一个进入屁股From_unixtime,另一个与UTC_TIMESTAMP他们现在显示不同的时间。
我看过你需要用SET设置时区time_zone ='+00:00';
所以我试图在phpMyAdmin打开一个查询窗口,并进入
SET time_zone = '+00:00';
SELECT Time, ServerTime FROM `GeoLocation` WHERE 1;
,但我仍然得到报道的两个字段完全相同的时间。
然而phpMyAdmin的不运行两行,因为如果我不是尝试这个办法:
SELECT @ @global.time_zone , @ @session.time_zone
我得到这个:
@@ global.time_zone @@ session.time_zone
系统系统
但如果我这样做:
SET time_zone = '+00:00';
SELECT @@global.time_zone, @@session.time_zone
我得到这个:
@@ global.time_zone @@ session.time_zone
SYSTEM +00:00
所以也没有任何意义,我,我已经证实我喂它的UTC时间(从unix时间开始),但它显示为UTC + 1,它无助于设置时区。
任何想法?
如果你使用.net和实体框架,你还必须告诉它,当你像下面这样获取值时,时间是在utc中:DateTime.SpecifyKind((DateTime)loc.Time,DateTimeKind.Utc); –