我正在开发一个应用程序,每当发生任何数据库操作时,需要在Sql列(默认设置为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)中记录时间戳。
在App Engine上部署应用程序后,我确实在Sql列中获得时间戳,但我不知道它从哪里选择时间戳(我猜这是来自服务器的时间戳应用程序正在运行或Google Cloud Sql正在运行)。
如果我需要同一时区的信息,我怎么才能得到它?或者是否有更好的方法来记录这些信息,如使用java代码java.util.Date date= new java.util.Date();
生成时间戳,并将其存储在sql列中,然后选择哪个时区/时间?
默认情况下,时间通常以GMT格式存储。当您检索它时,您可以使用以下命令:
Select datetime(current_timestamp, 'localtime');它会显示你所在时区的时间。这只是一个例子,很明显还有很多变化。有很多方法可以做到这一点,实际上,您可以使用Java时间戳设置为特定的时区并存储它
我不知道你如何使用这些数据,但最有效的方法是存储java.util.Date().getTime();数据库中的长值。对于大多数用例来说,这已经足够了,比如通过创建时间、日志等来比较数据实体。
由于应用程序在部署后运行在GAE上,并且GAE服务器设置为GMT,因此使用java生成时间戳,甚至在云sql上设置表以自动生成时间戳,将根据服务器的时间,因此对我的应用程序没有用处。
所以,作为一个工作,为了记录用户访问应用程序的时间戳,我使用new Date();
通过javascript生成时间戳,并在云上的sql表中存储与字符串相同的时间戳。
好吧,这是我的一半需求,因为我目前没有办法根据用户的时区显示这个存储的时间戳,这可能与表中存储的时间戳不同。由于