r - date_format时区奇怪

标签 r timezone

我定义了一个带有时区的日期,但是当我使用scalesdate_format打印它时,它给了我UTC时间,这对我的目的来说很尴尬.

> library(scales)
> st <- as.POSIXct("2015-10-31 00:00:00",tz="US/Pacific")
> st
[1] "2015-10-31 PDT"
> fmt <- date_format("%Y-%m-%d %R %Z")
> fmt(st)
[1] "2015-10-31 07:00 UTC"

有趣的是,这有效(所以 POSIXct 似乎理解时区) - 但没有给我对格式的足够控制:

> format(st,usetz=T)
[1] "2015-10-31 PDT"

?date_format 的帮助中暗示了这种不可靠性:

When %z or %Z is used for output with an object with an assigned time zone an attempt is made to use the values for that time zone — but it is not guaranteed to succeed.

所以我的问题是,如何使其成功

建议解决方法很好,并且可能会获得支持,但请理解这个问题的要点是我想深入了解 date_format 的情况。

最佳答案

date_format 的定义非常简短:

function (format = "%Y-%m-%d", tz = "UTC") 
{
    function(x) format(x, format, tz = tz)
}

如果您不更改默认值,那么为什么时区会发生更改应该是显而易见的。

关于r - date_format时区奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470541/

相关文章:

reporting-services - 如何在SSRS中获取时区值

python - pandas.to_datetime() 如何从本地时区转换为 UTC unix 时间戳?

javascript - 时区偏移显示不正确的日期和时间

r - 结合使用 ggplot 和 ggmap 制作的 choropleth

r - 小写某些单词 R

python - 在 Python 中,为什么 isinstance 函数说 datetime 是 datetime.date 的一个实例?

java - 基于Java中的国家/地区代码(如DE,IT,ES,IE,IE,PT,UK)的当前日期和时间

r - R中的绘图列表结构

python - 如何在 plotly 中获取所有色标的名称?

r - 对矩阵系列 : how to boost a loop of matrix multiplication and exponential 求和