作者LPH66 (1597463007)
看板java
标题Re: [问题] 有关转换时间
时间Fri Jun 13 18:31:27 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/java/M.1402655490.A.ADA.html
1F:→ iamsewei:感谢你 替我解答 06/13 18:32