首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将dos日期时间转换为Unix时间?

如何将dos日期时间转换为Unix时间?
EN

Stack Overflow用户
提问于 2013-09-16 16:38:32
回答 2查看 995关注 0票数 1

Unix时间是从1970年开始算起的数字秒。Java文件时间是1970年后的毫秒数。都是格林威治时区。但是dos datetime是位字段格式,几位表示日、月、年和时间hh、mm、ss、本地时区。将Unix时间转换为文件时间很容易- mul。1000。从Dos datetime到Unix的转换很困难。存档库UnAceV2具有Dos datetime格式。如何将其转换为Unix?

EN

回答 2

Stack Overflow用户

发布于 2013-09-16 16:56:04

查看java.util.zip.ZipEntry.dosToJavaTime(long)java.util.zip.ZipEntry.javaToDosTime(long)的源代码

票数 3
EN

Stack Overflow用户

发布于 2013-10-30 02:08:33

代码语言:javascript
复制
    /** Converts DOS time to Java time (number of milliseconds since epoch). */
    private long dosToJavaTime(long dosTime) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, (int) ((dosTime >> 25) & 0x7f) + 1980);
        cal.set(Calendar.MONTH, (int) ((dosTime >> 21) & 0x0f) - 1);
        cal.set(Calendar.DATE, (int) (dosTime >> 16) & 0x1f);
        cal.set(Calendar.HOUR_OF_DAY, (int) (dosTime >> 11) & 0x1f);
        cal.set(Calendar.MINUTE, (int) (dosTime >> 5) & 0x3f);
        cal.set(Calendar.SECOND, (int) (dosTime << 1) & 0x3e);
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTime().getTime();
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18823699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档