Excel/WPS 電子表格中時(shí)間戳轉(zhuǎn)日期時(shí)間公式
發(fā)表時(shí)間:2022-12-08 19:42:18 瀏覽:3929 次
從MySql數(shù)據(jù)庫中導(dǎo)出一份Excel文件發(fā)給了我,并吩咐我排查問題的原因。
面對(duì)龐大的數(shù)據(jù)表格,我快速瀏覽了一遍,確認(rèn)首先需要處理的是client_time一列,內(nèi)容是Unix時(shí)間戳格式,很明顯,Excel不支持Unix時(shí)間戳。
來看什么是Unix時(shí)間戳
Unix時(shí)間戳(Unix timestamp),或稱Unix時(shí)間(Unix time)、POSIX時(shí)間(POSIX time),是一種時(shí)間表達(dá)方式,定義為從格林威治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù)(或總毫秒數(shù))。Unix時(shí)間戳不僅被使用在Unix系統(tǒng)、類Unix系統(tǒng)中,也在許多其他操作系統(tǒng)中被廣泛采用。
這好說,我上來就【右鍵-單元格格式-選時(shí)間分類-確定】走你~然后,我看到的結(jié)果是這樣的:
大意了,看來此法不通。
這有何難?用站長工具轉(zhuǎn)換一下不就好了!當(dāng)我轉(zhuǎn)換到第3條的時(shí)候,我意識(shí)到這將是個(gè)浩大的工程...
站長工具是不支持批量轉(zhuǎn)換的,這幾千條數(shù)據(jù),如此搞下去,我怕不是有個(gè)大病。
不懂就問,有一波人說,可以寫個(gè)程序用編程語言轉(zhuǎn)換,這...肯定可行,但時(shí)間成本有點(diǎn)高。
繼續(xù)不懂就問,很快我找到了一種更快速有效的解決方法。
接下來,讓我做個(gè)小結(jié)以備忘:
1
13位時(shí)間戳轉(zhuǎn)日期時(shí)間(毫秒)
首先
假設(shè)A2單元格內(nèi)容為13位的時(shí)間戳,再選中B2單元格,在公式框中輸入
=TEXT((A2/1000+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss.000")
按Enter鍵確認(rèn),此時(shí)能看到,B2單元格顯示了轉(zhuǎn)換后的日期時(shí)間格式2021/07/03 18:43:42.573。
接下來,選中B2單元格,下拉應(yīng)用公式,整列搞定。
2
10位時(shí)間戳轉(zhuǎn)日期時(shí)間(秒)
10位時(shí)間戳的轉(zhuǎn)換方法與13位時(shí)間戳同理。唯一不同的是,此時(shí)的公式為
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")
可能有人會(huì)問了:能不能將日期時(shí)間轉(zhuǎn)換成Unix時(shí)間戳呢?既然我的標(biāo)題上說的是“互換”,答案當(dāng)然是能的了。
3
日期時(shí)間轉(zhuǎn)10位時(shí)間戳
話不多說,直接上公式
= INT((A2-70*365-19)*86400-8*3600)
其實(shí)就是把公式反過來,日期時(shí)間轉(zhuǎn)13位時(shí)間戳, 我就不贅述了。
學(xué)習(xí)是一個(gè)舉一反三的過程,如果只需解一時(shí)燃眉之急,記住以上公式也夠用。但如果想知其然且知其所以然,就得了解公式背后的原理了。
以10位時(shí)間戳(秒)轉(zhuǎn)日期為例。公式:
=TEXT((A2+8*3600)/86400+70*365+19,"yyyy/mm/dd hh:mm:ss")
A2+8*3600:當(dāng)前時(shí)區(qū)的時(shí)間(秒)(A2+8*3600)/86400:將秒轉(zhuǎn)換為天(A2+8*3600)/86400+70*365:加上1900年至1970年的70年(A2+8*3600)/86400+70*365+19:加上閏年多出來的天數(shù)19
Excel的日期實(shí)際上是序列值,它以1900-1-1=1為始,每過一天序列值加1;Unix時(shí)間戳是從1970-1-1 0:00:00開始到現(xiàn)在的秒數(shù)。
細(xì)心的人可能會(huì)發(fā)現(xiàn),1900年至1970年共17個(gè)閏年,如果考慮到Excel將1900-1-1當(dāng)作1,那么公式最后應(yīng)該加18才對(duì),為什么要加19呢?這是Excel的一個(gè)bug--把1900年也當(dāng)作閏年了。
Tips:另有一點(diǎn)需注意,在Excel的【文件->工具->選項(xiàng)->重新計(jì)算】中,有個(gè)"使用1904日期系統(tǒng)"選項(xiàng),如果勾選此選項(xiàng),上面的公式應(yīng)將70改為66,即:
=TEXT((A2+8*3600)/86400+66*365+19,"yyyy/mm/dd hh:mm:ss")
到這里,完整的備注我就寫完了。
外面青色的天空,陰沉又安靜。我在等待一場夏日里的傾盆大雨,和一個(gè)新的開始。
百度搜索推廣 |公司簡介 |人才招聘 |付款方式 |聯(lián)系方式 | ||
恩施網(wǎng)絡(luò)公司-恩施市百捷在線網(wǎng)絡(luò)科技有限公司 Copyright ? 2012-2021 網(wǎng)址:www.sjzjianda.com | ||
電話:15587589530 傳真:15587589530 聯(lián)系人:鄒經(jīng)理 | ||
地址:恩施市火車站萬福國際寫字樓613 Email:zou@esbaidu.com 備案號(hào):鄂ICP備16001060號(hào)-8 | ||
|