文档章节

lua 中关于时间戳和可读时间格式的一点记录

熊友良
 熊友良
发布于 2014/12/21 18:49
字数 567
阅读 7377
收藏 4

lua 标准库中提供了关于时间的函数os.time()和os.date(),这两个函数使用起来还是有需要注意的地方的;这两个函数的结果都是加入了时区;比如我现在系统是GMT+8; os.time({year=1970, month=1, day=1, hour=0})计算出来的是-28800,也就是86060;计算的是当前table中给定的时间距离1970.1.1 08:00时间的秒数,所以就得到负数了;

C标准库中,time()函数得到的时间戳其实也是加入了时区,也就是说不管你系统是那个时区,该函数返回的都是距离1970.1.1 00:00到当前的秒数;比如现在是GMT+8 00:00, 那么GMT+9 就是01:00,在这两个 时区同时调用time()函数,得到的值是一样的;

时区只会影响到我们转换过来的可读样式,比如os.date()函数,os.date("*t", 0)的结果在不同的时区hour字段的值会不一样,世界标准时间以GMT+0为参照,北京时间以GMT+8为参照,中间有8个小时的差距;

写这个记录,主要是最近写了个游戏活动开启的功能, 服务器告诉客服端活动的开启和结束时间(时间戳),比如09:00- 12:00;然后客户端要转换成可读样式,这里就要考虑到时区了,因为os.date()是在本地计算的,如果没注意直接转换过去就会得到本地的时间显示出来;所以如果服务器给的是时间戳的话,这个还真得多注意下。以前写代码都好少涉及到本地转换可读格式的,这次遇到了记录下,算是方便加强下记忆……

随便说下:os.date("*t", 0)获取到的table中hour字段是否可以当做当前时区呢?也就是说是否已通过该方式获取当前系统的时区;自己也不确定,打个问号吧

© 著作权归作者所有

熊友良
粉丝 4
博文 18
码字总数 6327
作品 0
广州
程序员
私信 提问
加载中

评论(2)

熊友良
熊友良 博主
os.date函数的一个参数你是不是写错了,应该是"*t"吧;比如os.date("*t", os.time())返回的是当前时间的一个table;如果当前是时区为GMT+8,time = 0,执行os.date("*t", time),返回的table中hour域的值为8,也就是说os.date函数进行过本地化转换;当time是从服务器发到客户端timestamp时,用os.time()函数转换就要考虑时区的问题
星魂之坠
星魂之坠
os.date(!*t,time)获取utc时间
IE和Firefox下的Cookie兼容问题

IE和Firefox下的Cookie兼容问题 这个帖是继于"基于二级域名下Cookie共享的SSO"后续发现的问题,测试结果是这样的:用Firefox可以登录,使用IE后,部分可以登录,部分不可以登录。最初是怀疑I...

perofu
2015/10/16
519
0
mongoDB的差值计算条件式问题

mongodb数据表里,一个是logoff_time,记录退出时间 一个是login_time,记录登录时间,都是unix时间戳格式保存。 我现在要统计在线时间在5分钟之内,那就拿退出时间减去登录时间得到的差值是...

天南海北
2011/05/06
594
1
Flask 教程,第十三部分:日期和时间

这是 我介绍自己的在使用 Python使用 Flask 这个轻量级web框架 的 经验 这个系列 中的第十三篇文章 因为这系列的教程主要是深入的介绍关于微博应用程序的深入开发,所以比较缺少创新性,在此...

lomatus
2013/01/16
4.5K
1
lua中获取未来某时间点的时间戳

最近在做游戏定时推送,犹如第二天9点通知玩家领取奖励之类的需求,要求获取第二天9点的时间戳,以前用JS写过类似的需求,JS中的Date类用起来比较方便,很多东西已经帮忙弄好了,最主要的还是...

熊友良
2014/12/01
1K
0
来自HeroKu的HTTP API 设计指南(中文版)

简介 本指南中文翻译者为 @Easy ,他是国内首家互联网人才拍卖网站 JobDeer.com 的创始人。转载请保留本信息。 本指南描述了一系列 HTTP+JSON API 的设计实践, 来自并展开于 Heroku Platfor...

失足处男的倒霉孩子
2014/09/05
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
57分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
59分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部