时间处理_Lua语言

lua使用标准的c编写成的,所以lua具有很多c的共同性,比如占位符的使用,以及打出方式都是很一样

1.如果有个为number或者是java传入的数字类型,那么如何转换为你需要使用的格式呢 ,后面参数的大小为秒

 local function main()
   print(os.date("%Y.%m.%d.%H.%M.%S", os.time()));
  end
  main()

这里的%Y.%m.%d.%H.%M.%S分别代表的是年月日时分秒,其中如果把%S打成了%s,这里系统认不出,会直接得到的所有的值为nil,请注意(如果在后面一个参数为nil,那么得到的也是当前时间的偶!(系统当前时间))
print(os.date(".%m", nil));
数据
.02

其中还有最后一个参数为0的时候也要特别注意,因为

 print(os.date("%Y.%m.%d.%H.%M.%S", 0));
得到的是
1970.01.01.08.00.00
只有
print(os.date("%Y.%m.%d.%H.%M.%S",-100));

这样得到的才是nil偶(需要注意后面的参数需要<-1,其他的时间获取到的还是初始时间)
下面是一些转载的东东,感觉还是满有用的(已经自己完善)

os.time()                <== 返回当前系统的日历时间
os.date()                <== 返回本地化的时间字符串,这里是"11/28/08 17:23:37"
os.date("%x", os.time()) <== 返回自定义格式化时间字符串(完整的格式化参数),这里是"11/28/08"
os.clock()               <== 返回执行该程序CPU花去的时钟秒数,这里是1156.726

附录
完整的格式化参数
这些时间输出的字符串表示是经过本地化的。所以如果是在巴西(葡萄牙语系),”%B” 得到的就是 “setembro”(译者按:大概是葡萄牙语九月?),”%x” 得到的就是 “16/09/98”(月日次序不同)。标记的意义和显示实例总结如下表。实例的时间是在1998年九月16日,星期三,23:48:10。返回值为数字形式的还列出了它们的范围。(都是按照英语系的显示描述的,也比较简单,就不烦了)

%a abbreviated weekday name (e.g., Wed) 星期几的缩写
%A full weekday name (e.g., Wednesday) 星期几的全写
%b abbreviated month name (e.g., Sep) 月份的缩写
%B full month name (e.g., September) 月份的大写
%c date and time (e.g., 09/16/98 23:48:10)  月日年 时分秒
%d day of the month (16) [01-31] 改天是这个月的第几天(数字)
%H hour, using a 24-hour clock (23) [00-23]得到当前的小时数(24小时制)
%I hour, using a 12-hour clock (11) [01-12]得到当前的小时数(12小时制)
%M minute (48) [00-59]获取当前分钟数
%m month (09) [01-12]获取当前月份(各位会自动添0)
%p either "am" or "pm" (pm)是上午还是下午
%S second (10) [00-61]得到当前秒数
%w weekday (3) [0-6 = Sunday-Saturday]获取当前是星期几(数字)
%x date (e.g., 09/16/98)获取当前时间的(月/日/年)
%X time (e.g., 23:48:10)获取当前的(时:分:秒)
%Y full year (1998)获取当前的年数
%y two-digit year (98) [00-99]属性确定在100年的范围内可以用两位数的年份来表示的最大年份。
%% the character '%'(当出现%%m等这样的占位符,就会出现抵消占位符%m的作用)
事实上如果不使用任何参数就调用date,就是以%c的形式输出。这样就是得到经过格式化的完整时间信息。
注意%x、%X和%c由所在地区和计算机系统的改变会发生变化。
如果该字符串要确定下来(例如确定为mm/dd/yyyy),可以使用明确的字符串格式方式(例如"%m/%d/%Y")。

下面提供:
1.获取系统时间

function main()
  timer=os.time();
  tab=os.date("*t",timer);
  print(tab.year);
  print(tab.month);
  print(tab.day);
  print(tab.hour);
  print(tab.min);
  print(tab.sec);
end
main();

2.倒计时逻辑

-- --分大于0的时候
-- if(mmin>0)then
--   mmin=mmin-1;
-- else
--  if(mhour>0)then
--   mmin=59;
--   mhour=mhour-1;
--  else
--    if(mday>0)then
--     mday=mday-1;
--     mhour = 23;
--     mmin = 59;
--    else
--     mmin = 0;
--     mhour = 0;
--     mday = 0;
--    end
--  end
-- end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值