R语言Lubridate包dmy函数转换日期后输出格式不符问题咨询
问题解答
你对dmy()函数的功能存在误解,具体说明如下:
dmy()是日期解析函数,名称里的d/m/y仅用来标注你输入的字符型日期的排列顺序,告诉函数你提供的字符串是按「日-月-年」的规则排列的,方便它正确提取对应数值生成标准日期对象,和最终输出的展示格式完全没有关联。- R语言中的
Date类型本质是存储1970年1月1日至今的天数的整数,本身没有内置任何展示格式属性。默认在控制台打印时,R会统一采用yyyy-mm-dd的ISO标准格式显示日期值,这是R的默认规则,和你使用的日期解析函数没有关系。
如果你需要得到dd/mm/yyyy格式的结果,可按需选择以下方案:
- 仅需要临时输出指定格式的内容:使用
format()函数转换即可,注意转换后得到的是字符类型,无法直接参与日期运算
# 示例代码 formatted_date <- format(base$date, "%d/%m/%Y") str(formatted_date) #> chr [1:38] "23/09/2020" "23/09/2020" "17/06/2020" "03/06/2020" ...
- 想要修改当前会话的日期默认打印格式:可以调整系统locale的日期配置,不过该修改仅对当前打开的R会话生效,还可能影响其他依赖默认格式的代码逻辑,一般不推荐随意修改。
内容的提问来源于stack exchange,提问作者user17465205
相关产品推荐
相关产品推荐

