r语言中时间函数处理

[plain]  view plain  copy
  1. (1)获取当前日期有两个函数    
  2. 一个是Sys.Date(),另外一个是Sys.time(),获得向前向后的时间    
  3.     
  4.  t<-Sys.time()    
  5.     
  6.  t    
  7. [1] "2015-09-22 18:53:56 CST"    
  8.     
  9. t是一种长整形的数据自1970-01-01年开始,用unclass()函数得到,时间单位是秒    
  10.     
  11. > unclass(t)    
  12. [1] 1442919236    
  13.     
  14.     
  15. 获取一个小时前的日期    
  16.     
  17. as.POSIXlt(t-3600)    
  18.     
  19. [1] "2015-09-22 17:42:36 CST"    
  20.     
  21. 获取一天前的日期    
  22. as.POSIXlt(t-24*60*60)    
  23. [1] "2015-09-21 18:42:36 CST"    
  24. 同理可以可以到前20天,前20天,前一年的数据,方法比较灵活    
  25.     
  26. 将长整形的数据转换为日期型数据,这种方式感觉是借鉴java的,具体做法如下:    
  27.  t<-Sys.time()    
  28. as.POSIXct(unclass(t),origin=    
  29. "1970-01-01") #要从1970-01-01年开始 [1] "2015-09-22 18:53:56    
  30. CST"    
  31.     
  32. (2)自定义时间格式    
  33.  t<-Sys.time()    
  34.     
  35. > t    
  36. [1] "2015-09-22 19:19:54 CST"    
  37.     
  38.     
  39.  format(t,format="%Y-%m-%d")    
  40.     
  41. [1] "2015-09-22"    
  42.     
  43.     
  44. format(t,format="%B-%d-%Y")    
  45. [1] "九月-22-2015"    
  46. format(t,format="%a-%d-%Y")    
  47. [1] "周二-22-2015"    
  48. format(t,format="%A-%d-%Y")    
  49. [1] "星期二-22-2015"    
  50. format(t,format="%b-%d-%Y")    
  51. [1] "九月-22-2015"    
  52. 诸如这种形式,%d代表0-31、%a代表周几,%A代表星期,%m代表月份0-12,%b代表月份,%B代表月份    
  53.     
  54.     
  55.     
  56. (3)计算时间差    
  57.     
  58.     
  59.     
  60. > today<-Sys.time() > today [1] "2015-09-22 19:27:03    
  61. CST"    
  62.     
  63.     
  64. > dob<-as.Date("2014-9-22")    
  65.     
  66. > difftime(today,dob,units = "days")    
  67.     
  68. Time difference of 365.4771 days    
  69.     
  70.     
  71. difftime(today,dob,units    
  72. = "weeks")    
  73.     
  74. Time difference of 52.21102 weeks    
  75.     
  76.     
  77.     
  78. units可以是“auto”, “secs”, “mins”, “hours”, “days”, “weeks”其中的一个    
  79.     
  80.     
  81.     
  82.     
  83.     
  84. (4)获得等差时间序列    
  85.     
  86. 指定起始日期:    
  87. start<-as.Date("2015-01-01")    
  88. > end<-as.Date("2015-09-22") > seq(from=start,to=end,by=1)    
  89. [1] "2015-01-01" "2015-01-02" "2015-01-03" "2015-01-04"    
  90. "2015-01-05" "2015-01-06" [7] "2015-01-07"    
  91. "2015-0。。。。。。    
  92.     
  93.     
  94. 指定长度:    
  95. seq(from=start,by=1,length.out    
  96. = 10) [1] "2015-01-01" "2015-01-02" "2015-01-03" "2015-01-04"    
  97. "2015-01-05" "2015-01-06" [7] "2015-01-07" "2015-01-08"    
  98. "2015-01-09" "2015-01-10"    
  99. [plain] view plain copy  
  100.  now <- Sys.time()    
  101. tseq <- seq(now, length.out = 100, by = "mins")    
  102.     
  103. 也可以用as.Date():    
  104. as.Date(0:10,origin="2015-09-10")    
  105. [1]    
  106. "2015-09-10" "2015-09-11" "2015-09-12" "2015-09-13" "2015-09-14"    
  107. "2015-09-15" [7] "2015-09-16" "2015-09-17" "2015-09-18"    
  108. "2015-09-19" "2015-09-20"   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值