Re: [問題] 有關轉換時間

看板java作者 (1597463007)時間10年前 (2014/06/13 18:31), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《iamsewei (翠玉林志玲)》之銘言: : 我有一個64bitn windows number 的時間字串 : 1396487878 : 在stackoverflow找到的方法 : http://ppt.cc/Ks6o : 卻不會使用.... : Date date = new Date((1396487878)); : Log.i("main","cover date= "+date); : 在android 上面我使用這樣印出來發現時間 是1970....不知道我哪裡有問題 : 希望熟悉的大大可以教一下 感謝Q_Q 網路沒甚麼資料 用回的好了 你可以查一下 Date 的說明 http://docs.oracle.com/javase/7/docs/api/java/util/Date.html Date(long date) 這個建構子的說明有說到 這個 long 值是以毫秒數為單位 而你的時間是秒數 所以要乘上 1000 另外由於這是一個 64-bit 常數 所以請加上一個 L (不然 1396487878000 比 2^31-1 = 2147483647 還大 編譯器會告訴你數值超出範圍) 所以你應該要寫成 Date date = new Date(1396487878000L); 另外你引的 stackoverflow 的連結所轉換的是 Windows 的 FILETIME 它的基準點跟單位都跟 Unix timestamp 不同 所以才需要扣掉那個大數字再除以一萬 (其實這裡也可以發現到我上面提的問題: 文中有提 FILETIME 以 100ns (10^-7 秒) 為單位 但是那個回答裡除的數字卻只有一萬 這就代表 Date 建構子需要的時間單位是 10^-3 秒) -- 1985/01/12 三嶋鳴海 1989/02/22 優希堂悟 1990/02/22 冬川こころ 1993/07/05 小町 つぐみ 歡迎來到 1994/05/21 高江ミュウ 1997/03/24 守野いづみ 1997/03/24 伊野瀬 チサト 1998/06/18 守野くるみ 打越鋼太郎的 1999/10/19 楠田ゆに 2000/02/15 樋口遙 2002/12/17 八神ココ 2011/01/11 HAL18於朱倉岳墜機 ∞與∫的世界 2011/04/02 茜崎空 啟動 2012/05/21 第貮日蝕計畫預定 2017/05/01~07 LeMU崩壞 2019/04/01~07 某大學合宿 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.30.32 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1402655490.A.ADA.html

06/13 18:32, , 1F
感謝你 替我解答
06/13 18:32, 1F
文章代碼(AID): #1JcjC2hQ (java)
討論串 (同標題文章)
文章代碼(AID): #1JcjC2hQ (java)