首頁 | 關於知識網 | 會員規範 | 知識地圖| 本站連結 | JACKSOFT | 加入會員 |
電腦稽核 >> 電腦稽核軟體討論區 >>[求助]時間格式的轉換
[求助]時間格式的轉換

大家好

請問在ACL中我該如何把unix time 格式的資料轉換成一般的時間表示格式呢


2
 
 

   
相關標籤
   
回文 #1
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:268
回文時間:2008-12-27 00:12:57

這跟我想像的一樣,但我還沒來的及從輔助文件中找到相關的幫助,我試著使用ZONED()這個函式,但就像你看到的,我透過決定或落在十進位中的哪一半來"解決"這個進位問題(不過在未來,我會覺得可以用INT()這個函式) NUMERIC111900000001200000000 script將會傳回 NUMERIC1Date1Time1119000000009/17/200703:33:20120000000001/11/200821:20:00
   
回文 #2
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:268
回文時間:2008-12-26 23:31:58

不好意思,我沒辦法用一支script就完成這件工作,現在只能令它執行一行,在處理GROUP這個指令取捨的時候出了點問題,以下是我的script unixtimescript:open unixtimeRemainder = 0Days1 = 0Hours = 0Minutes = 0Seconds = 0Hours1 = "00"Minutes1 = "00"Seconds1 = "00"Time1 = "00:00:00"Date1 = `19700101`GROUPRemainder = MOD(Numeric1,86400)Hours = Remainder / 3600Remainder = MOD(Remainder,3600)IF Remainder >= 1800 Hours = Hours - 1Minutes = Remainder / 60Remainder = MOD(Remainder,60)IF Remainder >= 30 Minutes = Minutes - 1Seconds = MOD(Remainder,60)Hours1 = STRING(Hours,2)IF Hours < 10 Hours1 = "0" + ALLTRIM(Hours1)Minutes1 = STRING(Minutes,2)IF Minutes < 10 Minutes1 = "0" + ALLTRIM(Minutes1)Seconds1 = STRING(Seconds,2)IF Seconds < 10 Seconds1 = "0" + ALLTRIM(Seconds1)Time1 = Hours1 + ":" + Minutes1 + ":" + Seconds1Days1 = Numeric1 / 86400IF MOD(Numeric1,86400) >= 43200 Days1 = Days1 - 1Date1 = `19700101` + Days1 EXTRACTNumeric1 Date1 Time1 TO unixtime2ENDopen unixtime2COMMENT// End unixtimescript.END 如果你只是想在直觀地看到日期(不在乎時間),那你可以建立一個新的expression,它的default值是19700101` + Unixtime / 86400。設定條件一是MOD(Unixtime,86400) >= 43200. 如果條件一為真,則值為`19691231` + Unixtime / 86400
   
回文 #3
回覆會員暱稱:咩
點數:2050
等級:專家

榮譽勳章:專家
發文篇數:99
回文時間:2008-12-26 23:30:47

我喜歡你的程式邏輯,我借用了其中許多部分,你遇到的問題是在ACL中,24/5=5而不是等於4.8 要注意的是這裡是使用ZONED() 這個函數讓"四個小時"變成"04",而不是 String()及IF < 10 open unixtime Remainder = 0Days1 = 0Hours = 0Minutes = 0Seconds = 0Hours1 = "00"Minutes1 = "00"Seconds1 = "00"Time1 = "00:00:00"Date1 = `19700101`GROUPDays1 = Numeric1/86400Remainder = MOD(Numeric1,86400)Hours = int(Remainder / 3600.0000)Remainder= Remainder - (Hours*3600)Minutes = int(remainder / 60.0000)Remainder= Remainder - (Minutes*60)Seconds = MOD(Remainder, 60)Hours1 = Zoned(Hours,2)Minutes1 = Zoned(Minutes,2)Seconds1 = Zoned(Seconds,2)Time1 = Hours1 + ":" + Minutes1 + ":" + Seconds1Date1 = `19700101` + Days1 Extract Numeric1 Date1 Time1 to unixtime2END
   
回文 #4
回覆會員暱稱:山上人
點數:1430
等級:實習生

榮譽勳章:實習生
發文篇數:71
回文時間:2008-12-26 22:27:01

像是1190000000所對應的時間就是17 September2007, 03:33:20 UTC 這是另外一個在1970年1月1號0點開始的記錄器所顯示的資料
   
回文 #5
回覆會員暱稱:咩
點數:2050
等級:專家

榮譽勳章:專家
發文篇數:99
回文時間:2008-12-26 22:03:56

你好 你可以舉例說明一下嗎 像是一個unix time格式的資料以及其對應一般時間格式的資料
網站建議與問題回報 | 隱私權政策 | 網站管理規範 | 條款與政策