You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby技术问题:如何将字符串20170319转为日期格式并获取年内天数

Ruby实现:将YYYYMMDD格式字符串转为一年中的第几天

刚好我之前处理过类似需求,Ruby的标准库已经帮我们把大部分工作做好了,分两步就能搞定:先把字符串解析成Date对象,再调用内置方法直接获取一年中的第几天。

具体实现方案

方法一:用Date.strptime(推荐,格式更严谨)

对于固定格式的日期字符串,strptime可以明确指定解析规则,避免自动解析可能出现的歧义,是更稳妥的选择:

# 先引入Ruby的日期标准库
require 'date'

# 你的目标日期字符串
date_str = "20170319"
# 按YYYYMMDD的格式解析成Date对象
date = Date.strptime(date_str, "%Y%m%d")
# 调用yday方法获取一年中的第几天
day_of_year = date.yday

puts day_of_year # 输出结果:78

方法二:用Date.parse(简单快捷,适合标准格式)

如果你的日期字符串是Ruby能自动识别的标准格式,parse方法可以一步到位,代码更简洁:

require 'date'

date_str = "20170319"
date = Date.parse(date_str)
day_of_year = date.yday

puts day_of_year # 同样输出:78

小提醒

  • 一定要记得引入date库,Ruby默认不会自动加载这个标准库
  • yday方法返回的是从1开始计数的整数,比如1月1日返回1,闰年的12月31日会返回366

内容的提问来源于stack exchange,提问作者one plus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:38:26