【发布时间】:2015-12-22 02:52:17
【问题描述】:
我是 strongloop 的新手。我的 datasources.json 配置如下:
"platformDB": {
"host": "localhost",
"port": 3306,
"database": "way",
"username": "root",
"password": "root",
"name": "platformDB",
"connector": "mysql"
},
和 UserAccount 是我的一个模型如下:
"name": "UserAccount",
"plural": "user",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"id": {
"type": "number",
"required": false
},
"accountName": {
"type": "string",
"required": false
},
"roleName": {
"type": "string",
"required": false
},
"accessToken": {
"type": "string",
"required": false
},
"loginTime": {
"type": "date",
"required": false,
"mysql": {
"dataType": "datetime"
}
}
当我调用 UserAccount.create 和 UserAccount.findById 函数时,它们的结果还可以。但是当我通过客户端工具连接mysql数据库时,我发现'loginTime'值是UTC时间。这个结果与其他系统组件不协调,总之,我需要本地时间。 所以我跟踪 loopback-connector-mysql 源代码,我在数据源中找到 timezone 属性如下:
var options = {
host: s.host || s.hostname || 'localhost',
port: s.port || 3306,
user: s.username || s.user,
password: s.password,
timezone: s.timezone,
socketPath: s.socketPath,
charset: s.collation.toUpperCase(), // Correct by docs despite seeming odd.
supportBigNumbers: s.supportBigNumbers,
connectionLimit: s.connectionLimit
};
所以我在我的 datasources.json 中配置“timezone”:“utc8”,UserAccount.findById 函数结果等于客户端工具,但 UserAccount.create 函数结果仍然是 utc 时间。这是为什么?
【问题讨论】:
标签: mysql timezone loopbackjs strongloop