首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从POSIXlt对象减去时间

从POSIXlt对象减去时间
EN

Stack Overflow用户
提问于 2016-12-19 16:39:17
回答 1查看 79关注 0票数 1

我试图从这个被定义为01:00的时间对象中减去一个小时(3600 s)。当我这样做时,时间组件就消失了,只剩下日期了。我需要保存时间成分--我该怎么做呢?只有当我的减法结果是00-00时才会发生这种情况。

代码语言:javascript
复制
test <- strptime("2016-09-02_01-00", format =  "%Y-%m-%d_%H-%M", tz = "UTC")
test
[1] "2016-09-02 01:00:00 UTC"
test-3600
[1] "2016-09-02 UTC"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-19 16:45:45

这是内容和表示之间的区别。

代码语言:javascript
复制
fmt <- "%Y-%m-%d_%H-%M"
test <- strptime("2016-09-02_01-00", 
     format = fmt, tz = "UTC")
str(test)
## POSIXlt[1:1], format: "2016-09-02 01:00:00"

减去3600确实改变了结构(从POSIXltPOSIXct) .

代码语言:javascript
复制
str(test-3600)
## POSIXct[1:1], format: "2016-09-02"

..。但是格式的改变仅仅是因为R试图提供帮助并打印最简单的表示形式。时间信息并没有消失。来自?strptime (谢谢@DavidArenburg):

格式方法的默认设置是"%Y-%m-%d %H:%M:%S“,如果任何元素都有时间分量而不是午夜,而"%Y-%m-%d”则为“%Y-%m-%d”。

当@MrFlick在注释中声明时,您可以通过指定一个格式字符串来覆盖它.

代码语言:javascript
复制
fmt2 <- "%Y-%m-%d %H:%M:%S"
format(test-3600,fmt2)
## [1] "2016-09-02 00:00:00"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41227203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档