如何将 unix 时间戳(自纪元以来的秒数)转换为 Ruby DateTime?

2024-03-07

如何将 Unix 时间戳(自纪元以来的秒数)转换为 Ruby DateTime?


抱歉,短暂的突触故障。这是真正的答案。

require 'date'

Time.at(seconds_since_epoch_integer).to_datetime

简要示例(这考虑到当前系统时区):

$ date +%s
1318996912

$ irb

ruby-1.9.2-p180 :001 > require 'date'
 => true 

ruby-1.9.2-p180 :002 > Time.at(1318996912).to_datetime
 => #<DateTime: 2011-10-18T23:01:52-05:00 (13261609807/5400,-5/24,2299161)> 

进一步更新(对于世界标准时间):

ruby-1.9.2-p180 :003 > Time.at(1318996912).utc.to_datetime
 => #<DateTime: 2011-10-19T04:01:52+00:00 (13261609807/5400,0/1,2299161)>

最近更新:我在一两周前从事 HA 服务时对本线程中的顶级解决方案进行了基准测试,并惊讶地发现Time.at(..)表现优于DateTime.strptime(..)(更新:添加了更多基准)。

# ~ % ruby -v
#  => ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]

irb(main):038:0> Benchmark.measure do
irb(main):039:1*   ["1318996912", "1318496912"].each do |s|
irb(main):040:2*     DateTime.strptime(s, '%s')
irb(main):041:2>   end
irb(main):042:1> end

=> #<Benchmark ... @real=2.9e-05 ... @total=0.0>

irb(main):044:0> Benchmark.measure do
irb(main):045:1>   [1318996912, 1318496912].each do |i|
irb(main):046:2>     DateTime.strptime(i.to_s, '%s')
irb(main):047:2>   end
irb(main):048:1> end

=> #<Benchmark ... @real=2.0e-05 ... @total=0.0>

irb(main):050:0* Benchmark.measure do
irb(main):051:1*   ["1318996912", "1318496912"].each do |s|
irb(main):052:2*     Time.at(s.to_i).to_datetime
irb(main):053:2>   end
irb(main):054:1> end

=> #<Benchmark ... @real=1.5e-05 ... @total=0.0>

irb(main):056:0* Benchmark.measure do
irb(main):057:1*   [1318996912, 1318496912].each do |i|
irb(main):058:2*     Time.at(i).to_datetime
irb(main):059:2>   end
irb(main):060:1> end

=> #<Benchmark ... @real=2.0e-05 ... @total=0.0>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 unix 时间戳(自纪元以来的秒数)转换为 Ruby DateTime? 的相关文章

  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • 在 SQL Server 中将 UTC 毫秒转换为 DATETIME

    我想在 SQL Server 中将 UTC 毫秒转换为 DateTime 这可以通过以下代码在 C 中轻松完成 DateTime startDate new DateTime 1970 1 1 AddMilliseconds 1348203
  • ruby 中的 #encode 和 #force_encoding 有什么区别?

    我真的不明白之间的区别 encode and force encoding在 Ruby 中String班级 我明白那个 kam force encoding UTF 8 将迫使 kam 是UTF 8编码 但是怎么样 encode encod
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 使用 attr_accessor 动态创建类属性

    在Ruby中 有没有办法动态地将实例变量添加到类中 例如 class MyClass def initialize create attribute name end def create attribute name attr acces
  • 如何从 ruby​​ 中的字符串中删除所有非数字?

    用户输入数字的形式如下 1 800 432 4567 800 432 4567 800 432 4566 800 432 4567 1 800 432 4567 800 432 4567 我希望所有这些都变成没有特殊字符的剥离版本 例如18
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • 没有要加载的文件 - ffi_c (LoadError)

    这个问题困扰了我几天 每当我使用 bring to front 方法时 require rubygems require watir browser Watir Browser new browser bring to front 我收到此
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • 在 ruby​​ 中下载多个 FTP 文件,如 d*.txt

    我需要连接到 ftp 站点并下载一堆名为 D txt 的文件 最多 6 个 你能帮我用 Ruby 编写这个代码吗 下面的代码只是 ftp Net FTP new ftp server site ftp login user pwd ftp
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 存根和 rspec 旧语法的问题

    我正在编写一些代码并使用 rspec 但收到警告 提示语法已过时 我不太清楚应该如何编写它 it should calculate the value correctly do mock cards Card new clubs 5 Car
  • 什么是适合 Rails 3 的测试框架?

    去年我一直在使用 Ruby On Rails 但是 无法进行单元测试 现在我必须编写单元测试代码 哪个测试框架好 为什么 有这方面的好的教程吗 我的系统配置 Ruby 1 9 2 Rails 3 Ubuntu 10 第一个技巧是 尝试升级到
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 使用 ruby​​ 调整动画 GIF 图像的大小?

    我正在尝试将 GIF 图像调整为不同的尺寸 我在 ruby 中使用 RMagick 库 但对于某些 gif 图像 即使我缩小 GIF 的大小 文件大小似乎也会增加 我正在以相同的纵横比调整图像图像的大小 这是我的代码 require rma

随机推荐

  • Swift 2 中的反射

    我有一个类用户 import UIKit import ObjectMapper class User NSObject CustomStringConvertible Mappable var FirstName NSString var
  • 删除列中的重复数据

    我目前正在开发一个订购系统 客户可以在其中订购许多商品 我还有一位管理员 他 她可以在其中查看当天的所有订单 管理员可以查看客户姓名 应付总额 客户订购的产品和产品数量 我目前使用我的查询看到了这个结果 Name Payable Produ
  • HTML5 Canvas TextBaseline Top 在 Firefox 和 Chrome 中看起来不同

    在canvas中 当将textBaseline属性设置为 top 时 其在chrome和firefox中的渲染有所不同 在 Chrome 中 行和文本之间有间隙 而在 Firefox 中则没有间隙 请参考this http www w3sc
  • 静态成员变量,例如 OOP 语言

    我对 Go 还很陌生 然后我搜索了很多如何使用静态函数 变量 例如 C 的静态类 但是 我找不到任何对此问题有很好答案的内容 也许这个问题看起来很愚蠢 但我不喜欢当我不确定或当我不完全理解某事时 假设我们有这样的代码 public clas
  • 在 DockerFile 中定义 VOLUME 挂载点而不是 adhoc cmd-line -v 的目的是什么?

    据我所知 在 Dockerfile 中使用 VOLUME 命令可以定义容器内的安装点 FROM centos 6 VOLUME html 但是我注意到 如果没有该 VOLUME 定义 无论如何定义它 仍然可以安装在该 VOLUME 点上 d
  • Laravel 5.4 在 Markdown Mailable 中错误地混合了 HTML 组件

    我有普通的 Mailable 其中有一些硬编码的内容 我已经发布了可邮寄的视图 将内容更改为 markdown 并替换 gt view with gt markdown 现在邮件已经有了很好的降价格式 然而 Laravel 在编译该 mar
  • 使用 Java 从 HTTPS 服务器下载文件 [重复]

    这个问题在这里已经有答案了 我想从使用安全连接协议 HTTPS 的服务器下载文件 我可以在普通服务器上做到这一点 但是 我如何使用 HTTPS 做到这一点 如果有人使用过示例 API 请帮助我找到有用的资源 使用 Java 访问 HTTPS
  • com.zaxxer.hikari.pool.PoolInitializationException:池初始化期间出现异常

    我目前有一个连接到我的主数据库的开放池 并且它运行良好 但现在 我想为另一个数据库打开一个新池 我完全按照我设置第一个池的方式设置了新池 显然我编辑了数据库名称等 当我加载 setupHikari 方法时没有出现错误 但一旦实际语句即将运行
  • 使用 Rails 3.2.* 和 Postgres 的字符串与文本 - 我应该只使用文本吗

    我采用了一个 Rails 应用程序 Rails 3 2 和 Postgres 9 4 它有一些 Rails 字符串 并且我们已经超过了 255 个限制 该应用程序之前使用 MySQL 而不是 Postgres 作为后备存储 我的理解是 po
  • 在 AngularJS 中处理服务器重定向到 Facebook 登录页面

    我有一个 AngularJS 应用程序和一个带有 ASP NET Identity 2 0 的 WebApi2 我正在尝试使用 Facebook 帐户登录用户 我在用这个答案 https stackoverflow com a 213589
  • 获取连接的智能手表的电池电量

    作为 Wear API 的一部分 是否可以获取已连接智能手表的电池电量 最好不需要在智能手表上部署实际的佩戴组件 然后在手表和设备之间来回通信 我见过一些穿戴应用程序可以在手表本身上显示手表的电池电量 但我只是想了解手表当前的电池电量使用电
  • 如何使用 ExecutorService Java 减少到达 Runnable 类的 run 方法的时间延迟

    我试图实现一个实时执行应用程序 其中按钮单击事件将任务分配给 Thread 该任务将调用MIDI方法播放一些音乐 单击按钮时必须立即开始播放音乐 并有一小段延迟 midi代码在Runnable类的run方法中实现 但是要在按钮单击事件本身发
  • 使用 CFStringGetHyphenationLocationBeforeIndex 添加连字符

    我正在制作一本带有核心文本的杂志 我试图自动在文本中添加连字符 我想我可以用这个功能来做到这一点 CFStringGetHyphenationLocationBeforeIndex 但它不起作用 我在网上找不到任何示例 我想要做的是设置文本
  • 如何在 Clojure 中捕获多个异常?

    我的 Clojure 代码有一些 java 互操作 其中的方法会引发多个异常 我希望与他们每一个人打交道 根据 Clojure 文档 try expr catch clause finally clause catch clause gt
  • jQuery.POST - 使用 Form.Serialize() 传递另一个参数 - Asp.net MVC 3

    当我正在开发 Asp Net MVC 应用程序时 在我的应用程序中我使用jQuery POST提交表单的方法 e g jQuery post Product Save jQuery document forms 0 serialize fu
  • 查找并附加某个类的 href

    我一直在寻找解决方案 但尚未找到正确的方法 情况是这样的 我需要找到给定类的页面上的所有链接 例如class tracker 然后在末尾附加查询字符串值 因此当用户加载页面时 这些某些链接会使用一些动态信息进行更新 我知道如何做到这一点Ja
  • Redis 缓存和 Mongo 持久化架构

    设置 想象一下 类似 Twitter 的服务 用户提交帖子 然后由许多 数百 数千或更多 用户阅读 我的问题是关于构建缓存和数据库以优化快速访问和多次读取的最佳方法 但仍保留历史数据 以便用户 如果他们愿意 可以看到较旧的帖子 这里的假设是
  • 为什么 Flask 占用了我所有的内存?

    我创建了我能想象到的最简单的 Flask 应用程序 import flask from flask import Flask application Flask name application route def index return
  • 从实体框架数据库中选取随机记录而不使用 OrderBy

    我尝试从数据库中获取随机记录 personToCall db Persons Skip toSkip Take 1 First 但我得到异常告诉我 The method Skip is only supported for sorted i
  • 如何将 unix 时间戳(自纪元以来的秒数)转换为 Ruby DateTime?

    如何将 Unix 时间戳 自纪元以来的秒数 转换为 Ruby DateTime 抱歉 短暂的突触故障 这是真正的答案 require date Time at seconds since epoch integer to datetime