【问题标题】:R - .net ticks to timestamp in RR - .net 标记 R 中的时间戳
【发布时间】:2016-05-16 10:01:05
【问题描述】:

也许有人做了以下任务。 我需要将 .net ticks 转换为 R 时间戳,包括毫秒。 所以输出应该像

%Y-%m-%d %H:%M:%OS6

【问题讨论】:

  • 你尝试了什么?为什么它不起作用?可以举一个你的输入数据的例子吗?
  • .net 滴答声是 UTC 中从 0001-01-01 开始的 100 纳秒间隔,所以可能类似于 as.POSIXct(ticks/100000, origin="0001-01-01", tz="GMT" ) ?
  • @dmitry R 时间戳没有格式。就像滴答声一样,它是相对于设定原点的偏移量。顺便说一句,你从哪里得到 ticks 的? .NET 具有 DateTime 和 Timespan 类型。 TIcks 很少使用

标签: .net r timestamp


【解决方案1】:

尽管就原始问题而言,这看起来像是一个死问题,但这是一个有效的答案。刻度 635652130060000000 应为 “2015-04-21 11:36:46 GMT”。上面的评论非常接近,但是单位转换错误,您需要将刻度除以 10,000,000 才能得到秒。

ticks <- 635652130060000000
seconds <- ticks / 1e7
datetime <- as.POSIXct(seconds, origin='0001-01-01', tx='GMT') 

【讨论】:

  • 刻度是一个数字。您不需要将它们视为文本或十六进制。只需传递数字
  • 是的,没错,在我的情况下,它们以十六进制形式存储在我从中获取它们的数据库中。认为如果其他人也遇到这种情况,这可能会对他们有所帮助。
  • 那么你有两个错误。首先,刻度永远不会直接使用,也绝对不会存储为字符串。其次,在数据库中,日期和时间值使用适当的类型存储,例如:日期、日期时间、日期时间偏移量、时间、时间戳等。除非有人解释,否则永远不要作为没有意义的字符串、数字、整数。你不能索引这些东西,不能对它们应用函数,甚至不能读取它们
  • 我建议你修复数据库并使用适当的类型。在 .NET 端使用 DateTime 或 TimeSpan 并将它们不进行任何转换保存到数据库中。编写一个接受 DateTime 类型参数的查询很简单
  • 哈,是的,如果它不是专有软件,我会完全同意不使用数据库格式存储日期时间是错误的,但我对此无能为力。感谢您提供有关蜱虫的信息。
猜你喜欢
  • 2017-07-28
  • 2021-01-28
  • 2011-10-18
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2021-07-16
相关资源
最近更新 更多