c# - 如何将整数转换为无符号 64 位整数

标签 c# ruby

我正在将此代码从 C# 转换为 Ruby:

C#代码

DateTime dtEpoch = new DateTime(1970, 01, 01, 0, 0, 0, 0, DateTimeKind.Utc); 
string strTimeStamp = Convert.ToUInt64((DateTime.UtcNow - dtEpoch).TotalSeconds).ToString();

ruby 代码

now = Time.now.utc
epoch = Time.utc(1970,01,01, 0,0,0)
time_diff = ((now - epoch).to_s).unpack('Q').first.to_s            

我需要将整数转换为无符号的 64 位整数。解压缩真的是正确的方法吗?

最佳答案

我不太确定您的代码的返回值是多少,但它肯定不是纪元以来的秒数。

Ruby 在内部将日期和时间存储为纪元之前的秒数。 Time.now.to_i 将准确返回您要查找的内容。

require 'date'

# Seconds from epoch to this very second
puts Time.now.to_i

# Seconds from epoch until today, 00:00
puts Date.today.to_time.to_i

关于c# - 如何将整数转换为无符号 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045706/

相关文章:

c# - 如何为 windows7、wpf 构建自定义 shell?

c# - 同类代码文件修改后生成T4文件

C# 如何纠正数组中的错误输入

C#对象池模式实现

ruby - 为消息队列实现类似 "leaky bucket"的算法

c# - 安装包 : Failed to add reference to 'System.Runtime'

ruby - 允许 block 处理可变数量参数的干净方法是什么?

ruby-on-rails - 使用 Cucumber 验证错误

ruby - 为什么 a = b rescue stmt 是一个错误,而 stmt rescue stmt 不是?

ruby-on-rails - Spree.config是如何实现的?