R语言时间日期转换求助:数字转时间/日期时间(印度标准时间)
R语言时间日期转换解决方案(印度标准时区)
问题1:将小数转换为时间格式
该小数代表一天的时间占比(0.237314814814815即一天的23.73%),转换步骤如下:
- 将数值乘以一天的总秒数(86400),得到当天零点起的累计秒数
- 用
as.POSIXct转换为时间对象,指定印度标准时区"Asia/Kolkata" - 通过
format()输出HH:MM:SS AM/PM格式
代码示例:
x <- 0.237314814814815 # 转换为时间对象 time_obj <- as.POSIXct(x * 86400, origin = "1970-01-01", tz = "Asia/Kolkata") # 格式化输出 format(time_obj, "%I:%M:%S %p") # 输出结果:"05:41:44 AM"
问题2:将Excel日期数值转换为日期时间格式
44998.79375是Excel的日期时间格式(整数部分为日期,小数部分为时间占比),Excel因1900年闰年bug,实际日期原点对应1899-12-30,转换步骤如下:
- 用
as.POSIXct直接转换,指定origin为"1899-12-30",时区设为"Asia/Kolkata" - 通过
format()输出DD-MM-YYYY HH:MM:SS格式
代码示例:
x <- 44998.79375 # 转换为日期时间对象 datetime_obj <- as.POSIXct(x * 86400, origin = "1899-12-30", tz = "Asia/Kolkata") # 格式化输出 format(datetime_obj, "%d-%m-%Y %H:%M:%S") # 输出结果:"13-03-2023 19:03:00"
内容的提问来源于stack exchange,提问作者Ismail Khan
相关产品推荐
相关产品推荐

