【问题标题】:vba select unixtimestamp from specific column and convert to date and timevba 从特定列中选择 unixtimestamp 并转换为日期和时间
【发布时间】:2015-04-13 13:08:10
【问题描述】:

我有一个 Excel 文件,它在“C”列中有很多 unix 时间戳,例如 (1422885360)。我需要一个将这个unix时间戳转换为日期(dd.mm.yyyy)和时间(mm:hh:ss)的vba脚本。日期和时间应在同一列中,因此应覆盖“C”列中的 unix 时间戳。

谁能帮帮我? 在此先感谢

【问题讨论】:

  • 你有代码吗?
  • 我在谷歌上寻找代码,但我没有找到任何有用的代码,而且我发现的每个代码都非常不同,所以我没有发布代码。
  • 您可能需要一个 UDF,但如果没有算法开始,就不可能回答您的问题。正如@sildoreth 评论的那样,显示一些代码。
  • 我认为它没用,我会给你一个代码,这对我完全不起作用,但是在这里你有我在谷歌找到的任何代码
  • Stack Overflow 是一个面向编程爱好者的网站。在这里获得帮助的最好方法是先尝试一些东西。如果您遇到困难,请进行一些研究,尝试自己解决问题,然后再询问有关您尝试的具体问题,展示您尝试过的内容。在没有展示解决方案尝试的情况下要求完整解决方案的问题通常会被否决并关闭。附言从某些搜索命中复制的一些随机代码不算作尝试。

标签: vba converter unix-timestamp


【解决方案1】:

使用此代码(公式)我解决了它,将 unix 时间码转换为日期和时间。
仅供参考,我的 unix 时间码在 C 列中,我在 D 列中添加了一个公式,其中日期和时间应该是可见的。

lastRow = Range("C" & Rows.Count).End(xlUp).Row 'this counts until the last entry of the column C
Range("D2").Formula = "=(C2/86400)+25569+(+1/24)" 'this is the formula to convert the unix time code to date and time. The +1 is for the timezone, so i live in Austria which has a timezone GMT+1
Range("D2").AutoFill Destination:=Range("D2:D" & lastRow) 'this copies the formula to column D to the same amount of rows of column C
Range("D2:D99999").NumberFormat = "DD.MM.YYYY HH:MM:SS" 'this changes the cell format to a custom format

【讨论】:

    【解决方案2】:

    Unix 纪元时间戳只是从 1970 年 1 月 1 日开始的秒数

    Range("C1").Value = DateAdd("s", Range("C1").Value, "1/1/1970")
    

    根据您的范围循环。

    【讨论】:

    • 感谢 david,但它不能很好地工作,因为它将每个 unixtimestamp 转换为一个相同的日期和时间。在这里你可以找到我的文件Dropbox
    猜你喜欢
    • 2014-04-14
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    相关资源
    最近更新 更多