W3C 格式的时间

发布于 2024-10-30 08:17:29 字数 475 浏览 1 评论 0原文

如何以 W3C 格式呈现时间,包括小时、分钟、秒和时区偏移量。

示例:

1997-07-16T19:20:30+01:00

更新 1

我在 config/locales/my_locale.yml 中有以下声明:

time:
  formats:
    w3c: %Y-%m-%dT%H:%M

唯一缺少的部分是偏移量,例如“+01:00”。它的插值符号是什么?

我找到了参考,其中包含时间区域名称,用 %Z 进行插值。

但是,offset在哪里?

How do i render time in W3C Format, including hours, minutes, seconds and timezone offset.

Example:

1997-07-16T19:20:30+01:00

Update 1

I have following declaration in config/locales/my_locale.yml:

time:
  formats:
    w3c: %Y-%m-%dT%H:%M

The only missing part is offset, like "+01:00". What is a interpolation symbol for it ?

I've found this reference, which contains time zone name, interpolated with %Z.

But, where is offset ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

熊抱啵儿 2024-11-06 08:17:29

实际上你应该使用 %:z 来包含 + 符号。您还需要包括秒。

"%Y-%m-%dT%H:%M:%S%:z"

更新:请注意,这仅适用于 Ruby 1.9.3+,%:z 格式标记在早期版本中不可用!

Actually you should use %:z to include the + symbol. You also need to include the seconds.

"%Y-%m-%dT%H:%M:%S%:z"

Update: Note that this is only possible with Ruby 1.9.3+, the %:z format token is not available in earlier versions!

想挽留 2024-11-06 08:17:29

您已经得到了答案,但我只是想说,由于这不取决于用户区域设置,而是由组织定义的标准,因此最好将其保留在区域设置文件之外,例如

我个人添加

Time::DATE_FORMATS[:w3c] = "%Y-%m-%dT%H:%M:%S%:z"
Date::DATE_FORMATS[:w3c] = "%Y-%m-%d"

的 en.yml application.rb 的底部

You've already got the answer but I just wanted to say that since this is not depended on the user locale but a standard defined by an organization it might be better to keep it outside of locale file such as en.yml

I personally add

Time::DATE_FORMATS[:w3c] = "%Y-%m-%dT%H:%M:%S%:z"
Date::DATE_FORMATS[:w3c] = "%Y-%m-%d"

at the bottom of application.rb

纸伞微斜 2024-11-06 08:17:29

要插入时区偏移值,应使用%z键(小写字母)。

To insert time zone offset value, %z key (lowercase letter) should be used.

江南月 2024-11-06 08:17:29

您可以添加文件 config/initializers/time_formats.rb 并放置:

::Time::DATE_FORMATS.merge!(
  dashed_date:                     '%Y-%m-%d',               # 2021-03-30
  dashed_date_with_time:           '%Y-%m-%d %I:%M%p',       # 2021-03-30 08:16PM
  short_month_day_year:            '%b %d, %Y',              # Mar 30, 2021
  slashed_date_with_time_and_zone: '%m/%d/%Y %H:%M:%S %Z',   # 03/30/2021 08:16:18 UTC
  time:                            '%-m/%e/%y %H:%M',        # 03/30/2021 18:16
  text_date:                       '%B %d, %Y',              # March 30, 2021
  twenty_four_hour_time:           '%H:%M:%S',               # 22:24:49
  twenty_four_hour_time_and_zone:  '%H:%M:%S %Z',            # 22:24:49 UTC
  utc_timezone:                    '%Z',                     # UTC
  w3c:                             '%Y-%m-%dT%H:%M:%S%:z'
)

然后使用 somting.updated_at.to_s(:w3c)

You can add a file config/initializers/time_formats.rb and put:

::Time::DATE_FORMATS.merge!(
  dashed_date:                     '%Y-%m-%d',               # 2021-03-30
  dashed_date_with_time:           '%Y-%m-%d %I:%M%p',       # 2021-03-30 08:16PM
  short_month_day_year:            '%b %d, %Y',              # Mar 30, 2021
  slashed_date_with_time_and_zone: '%m/%d/%Y %H:%M:%S %Z',   # 03/30/2021 08:16:18 UTC
  time:                            '%-m/%e/%y %H:%M',        # 03/30/2021 18:16
  text_date:                       '%B %d, %Y',              # March 30, 2021
  twenty_four_hour_time:           '%H:%M:%S',               # 22:24:49
  twenty_four_hour_time_and_zone:  '%H:%M:%S %Z',            # 22:24:49 UTC
  utc_timezone:                    '%Z',                     # UTC
  w3c:                             '%Y-%m-%dT%H:%M:%S%:z'
)

Then use somting.updated_at.to_s(:w3c)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文