创建和显示时间

Date类提过了简洁的使用date和time的方法。它依赖于os.date和os.time。
Date对象可以通过table创建,如果os.date,同时提过了获取和设置date
成员变量的元方法。
> d = Date {year = 2011, month = 3, day = 2 }
> = d
2011-03-02 12:00:00
> = d:month(),d:year(),d:day()
 3    2011    2
> d:month(4)
> = d
2011-04-02 12:00:00
> d:add {day=1}
> = d
2011-04-03 12:00:00
 
add函数可以把具有相同date域的表相加。
> = d:weekday_name()
Sun
> = d:last_day()
2011-04-30 12:00:00
> = d:month_name(true)
April
 
Date提供了默认的文本转date对象的方法,不过使用Date.Format你可以更加自由
的控制格式和解释及显示。
> iso = Date.Format 'yyyy-mm-dd'
> d = iso:parse '2010-04-10'
> amer = Date.Format 'mm/dd/yyyy'
> = amer:tostring(d)
04/10/2010
 
从0.9.7版开始,Date的构造函数更加自由。你可以省略year'、‘month’或‘day'的
任意部分。
> = Date { year = 2008 }
2008-01-01 12:00:00
> = Date { month = 3 }
2011-03-01 12:00:00
> = Date { day = 20 }
2011-10-20 12:00:00
> = Date { hour = 14, min = 30 }
2011-10-13 14:30:00
 
省略'year'则默认使用当前年,'month'也是如此。如果想设置date里的属性,可以使用‘setter’
方法,setter会返回date对象,这样你可以链式调用。
> d = Date { day = 03 }
> = d:hour(18):min(30)
2011-10-03 18:30:00
 
最后,Date允许位置参数:
> = Date(2011,10,3)
2011-10-03 12:00:00
> = Date(2011,10,3,18,30,23)
2011-10-03 18:30:23
 
Date.Format已经扩展了,你不需要模式就可以创建它的实例,它会尝试用内置的几套规则。
这对用户来说很有用,他们输入一般都不规则。
> df = Date.Format()
> = df:parse '5.30pm'
2011-10-13 17:30:00
> = df:parse '1730'
 nil     day out of range: 1730 is not between 1 and 31
> = df:parse '17.30'
2011-10-13 17:30:00
> = df:parse 'mar'
2011-03-01 12:00:00
> = df:parse '3 March'
2011-03-03 12:00:00
> = df:parse '15 March'
 2011-03-15 12:00:00
> = df:parse '15 March 2008'
2008-03-15 12:00:00
> = df:parse '15 March 2008 1.30pm'
2008-03-15 13:30:00
> = df:parse '2008-10-03 15:30:23'
2008-10-03 15:30:23
 
处理不同国家的日期时,格式化为ISO格式的日期是个好想法。
 > = df:parse '24/02/12'
2012-02-24 12:00:00
 
但这不是美国人期望的,你可以让它的输出期望的格式,而且是跨平台的。
> df:US_order(true)
> = df:parse '9/11/01'
2001-11-09 12:00:00
 
 
 

lua工具库penlight--05日期和时间的更多相关文章

  1. lua工具库penlight--01简介

    lua的设计目标是嵌入式语言,所以和其它动态语言(如python.ruby)相比其自带的库缺少很多实用功能. 好在有lua社区有Penlight,为lua提供了许多强大的功能,接下来的几篇博客,我会简 ...

  2. lua工具库penlight--06数据(一)

    这篇太长了,分了两部分.(这个是机器翻译之后我又校对了一下,以后的都这样,人工翻译太累了.) 读数据文件 首先考虑清楚,你的确需要一个自定义的文件读入器吗?如果是,你能确定有能力写好吗? 正确,稳健, ...

  3. lua工具库penlight--08额外的库(一)

    额外的库 在这一节中的库不再被认为是Penlight的核心部分,但在需要时,仍提供专门的功能. 简单的输入的模式 Lua 的字符串模式匹配是非常强大,通常您将不需要传统的正则表达式库.即便如此,有时  ...

  4. lua工具库penlight--06数据(二)

    词法扫描 虽然 Lua 的字符串模式匹配是非常强大,但需要更强大的东西.pl.lexer.scan可以提供标记字符串,按标记机分类数字.字符串等. > lua -lpl Lua 5.1.4  C ...

  5. lua工具库penlight--09技术选择

    模块化和粒度 在理想的世界,一个程序应该只加载它需要的库.Penlight需要额外100 Kb 的字节码来工作.它是简单但却乏味要加载你需要什么: local data = require 'pl.d ...

  6. lua工具库penlight--07函数编程(二)

    列表压缩 列表压缩是以紧凑的方式通过指定的元素创建表.在 Python里,你可以说: ls = [x for x in range(5)]  # == [0,1,2,3,4] 在 Lua,使用pl.c ...

  7. lua工具库penlight--04路径和目录

    使用路径 程序不应该依赖于奇葩的系统,这样你的代码会难以阅读和移植.最糟糕的是硬编码的路径, windows和Unix的路径分隔符正好相反.最好使用path.join,它可以帮助你解决这个问题. pl ...

  8. lua工具库penlight--02表和数组

    类Python的List lua的优美之处在于把数组和关联数组都用table实现了(Python中叫list和dict,C++中叫vector和map). 一般我们把数字索引的table叫做list. ...

  9. lua工具库penlight--07函数编程(一)

    函数编程 序列 Lua 迭代器 (最简单的形式) 是一个函数,可以多次调用返回一个或多个值.for in语句理解迭代器和循环,直到该函数将返回nil. Lua有标准的序列迭代器 (ipairs和pai ...

随机推荐

  1. React 同构思想

    作者:yangchunwen React比较吸引我的地方在于其客户端-服务端同构特性,服务端-客户端可复用组件,本文来简单介绍下这一架构思想. 出于篇幅原因,本文不会介绍React基础,所以,如果你还 ...

  2. [多校2015.02.1006 高斯消元] hdu 5305 Friends

    题意: 给你n个人m条关系 每条关系包括a,b 代表a和b能够是线上朋友也能够是线下朋友 然后保证每一个人的线上朋友数和线下朋友数相等 问你有多少种组成方法 思路: 官方题解是爆搜+剪枝,然而并不会写 ...

  3. 最佳实践扩展Windows窗体DataGridView控件 .net 4.5 附示例代码

    Windows窗体DataGridView控件的性能调优.net 4.5   在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你可以避 ...

  4. OpenStack 部署总结之:单节点icehouse网桥的配置

    部署完icehouse,安装完实例之后.假设虚拟主机须要和外部进行通信.还须要对宿主机的网桥进行配置 宿主机的配置 改动ifcfg-em1的内容为下面内容: DEVICE=em1 ONBOOT=yes ...

  5. 会说话的HTML--语义化杂谭-TGideas-腾讯游戏官方设计团队

    家里有个熊孩子,经常会有一些意想不到的事情发生:回家的时候,他会笑呵呵冲过来,大声喊着“臭爸爸”:你让他把鞋穿上,他会提起鞋子往楼下扔...在小孩的世界里,他虽然会说话,但不一定明白其中的意思,不能正 ...

  6. UDP socket也可以使用connect系统调用

    UDP socket也可以使用connect系统调用 UDP是一个无连接的协议,因此socket函数connect()似乎对UDP是没有意义的,然而事实不是这样.它可以用来指定本地端口和本地地址,来建 ...

  7. mvn 编译错误java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V

    Spring+struts2 +hibernate3集成,在后台测试时报的错,报错的这句话: Exception in thread "main" java.lang.NoSuch ...

  8. Android日常开发总结

    全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用 ...

  9. windows vbs启动多个应用程序并使程序最小化(显示桌面)

      windows vbs启动多个应用程序并使程序最小化(显示桌面) CreationTime--2018年7月26日11点18分 Author:Marydon 1.应用场景 每天开机后,都需要打开平 ...

  10. if-else用法

      CreateTime--2016年10月31日14:22:25Author:Marydonif-else的多种用法: //方式一 function test1 (t) { var bl = t | ...