1
我有一個.json
文件有很多的文件,每個文件是這樣的:轉換大紀元時間戳的日期格式
{"_id":{"$oid":"54ff56116d"},"caption":{"created_time":"1421434541",....}
我需要created_time
轉換爲日期格式在我的每一個文件。
你有什麼想法嗎?
我有一個.json
文件有很多的文件,每個文件是這樣的:轉換大紀元時間戳的日期格式
{"_id":{"$oid":"54ff56116d"},"caption":{"created_time":"1421434541",....}
我需要created_time
轉換爲日期格式在我的每一個文件。
你有什麼想法嗎?
既然你有10位數的數字作爲創建的時間,你可能使用的是'Unix時間戳',這是從The Epoch開始的秒數,它是1970-01-01 00:00:00 +00:00( 1970年1月1日上午在UTC或GMT時區的午夜)。如果你有13位數字,那麼從Java中使用的The Epoch開始可能是毫秒。還有其他系統,但這是一個合理的猜測。
有很多功能系統會將這些值轉換爲日期。
$ timestamp 1421434541
1421434541 = Fri Jan 16 10:55:41 2015
$ timestamp -u 1421434541
1421434541 = Fri Jan 16 18:55:41 2015
$ timestamp -T '%Y-%m-%d %H:%M:%S' -u 1421434541
1421434541 = 2015-01-16 18:55:41
$
:我使用標準庫函數,我用來驗證你的約會有一個C程序(本地時區:美國/太平洋,又名美洲/洛杉磯)
程序使用strtol()
到將字符串中的數字轉換爲long
,然後使用localtime()
或gmtime()
將其拆分爲struct tm
,然後使用strftime()
格式化結果。
的GNU date
命令可以用來做的東西太多:
$ /usr/gnu/bin/date -d @1421434541 +'%Y-%m-%d %H:%M:%S'
2015-01-16 10:55:41
$
既然你沒有確定你的主機的語言,它是不是真的可以告訴你使用什麼。無論您選擇哪種語言,都會有相當多的保證,但會有可用的代碼來處理轉換。
謝謝,我沒有任何特定的主機語言,但我的操作系統是Linux。 我的主要問題是如何做到100000行?我不能一個一個去做, – sinaei
你怎麼能避免一個接一個呢?您必須閱讀100,000行(或包含100,000條記錄的一行),並在您找到JSON庫時或在找到它之後處理每行。您尚未指定您使用的任何語言,因此很難爲您提供幫助。 GNU'日期'一次處理一個日期/時間。我的'timestamp'可以接受任意數量的字符串 - 你的O/S可能會停止它一次處理它們,但是你可以在一次調用中完成數千次。你需要更多的信息,而不僅僅是時間......但是你沒有說什麼。 –
感謝您的回答!它幫助了我 – sinaei