`
laotu5i0
  • 浏览: 145556 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

filetime格式和datetime格式相互转换

    博客分类:
  • java
阅读更多

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FiletimeToDateTime {
   
    public static void main(String[] args) throws ParseException {       
       
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       /**      将日期格式的转换成高低位 ,在此省略。读者自己修改 */
       // Date date1 = sdf.parse("2010-07-10 07:35:18");       
       //  FileTime fileTime = FileTime.date2FileTime(date1);
       // System.out.println(fileTime.toString());
 
        /**  end  */
       
        FileTime file = new FileTime();
        file.setLow(Long.valueOf(args[0]));
        file.setHigh(Long.valueOf(args[1]));
        Date date2 = FileTime.fileTime2Date(file);
        System.out.println(sdf.format(date2));
    }   
}
 
class FileTime {   
    /**
     * Unix 时间 1970-01-01 00:00:00 与 Win32 FileTime 时间 1601-01-01 00:00:00
     * 毫秒数差
     */
    public final static long UNIX_FILETIME_DIFF = 11644473600000L;   
    /**
     * Win32 FileTime 采用 100ns 为单位的,定义 100ns 与 1ms 的倍率
     */
    public final static int MILLISECOND_MULTIPLE = 10000;   
    private long low;
    private long high;   
 
    public FileTime() {       
    }
   
    public FileTime(long low, long high) {
        this.low = low;
        this.high = high;
    }
   
    /**
     * 将 Win32 的 FileTime 结构转为 Java 中的 Date 类型
     * @param fileTime
     * @return
     */
    public static Date fileTime2Date(FileTime fileTime) {
        return new Date(fileTime.getFileTime()
                        / FileTime.MILLISECOND_MULTIPLE
                        - FileTime.UNIX_FILETIME_DIFF);
    }
   
    /**
     * 将 Java 中的 Date 类型转为 Win32 的 FileTime 结构
     * @param date
     * @return
     */
    public static FileTime date2FileTime(Date date) {
        long time = (FileTime.UNIX_FILETIME_DIFF
                     + date.getTime()) * FileTime.MILLISECOND_MULTIPLE;
        FileTime fileTime = new FileTime();
        fileTime.setHigh((int)(time >> 32) &0xffffffff);
        fileTime.setLow((int)time&0xffffffff);
        return fileTime;
    }
 
    public long getLow() {
        return low;
    }
    public void setLow(long low) {
        this.low = low;
    }
    public long getHigh() {
        return high;
    }
    public void setHigh(long high) {
        this.high = high;
    }
   
    /**
     * 获得 FileTime 以 64 位数字表示的数据
     * @return
     */
    public long getFileTime() {
        return ((long)high >> 32 & 0xffffffff) | ((long)low & 0xffffffff);
    }
   
    public String toString() {
        return  "high:" + high + "low:" + low;
    }
}

分享到:
评论

相关推荐

    FileTime.rar_FILETIME

    2. **FILETIME结构**:理解其在Windows中的作用,如何读取和转换64位时间戳。 3. **文件I/O操作**:学习如何在C++中打开、读取和处理文件信息,尤其是获取文件的创建时间。 4. **用户界面设计**:通过Main.dfm文件...

    time_t-tm-systemtime-.rar_C++ time_FILETIME_SystemTime _Time

    `time_t`、`tm`、`SYSTEMTIME` 和 `FILETIME` 是四种不同的时间表示方式,它们各有特点,并且在不同场景下有各自的用途。本文将深入探讨这些类型之间的转换方法,以便更好地理解和操作时间数据。 `time_t` 是C++...

    C# datetime操作

    根据给定的信息,我们可以深入探讨C#中DateTime类的各种操作及其转换方法,特别是与日期时间相关的格式化处理。 ### C# DateTime 类型简介 在C#编程语言中,`DateTime` 类是处理日期和时间的核心类之一。它提供了...

    FileTime.zip

    《关于文件时间和办公效率的提升》 在日常的办公工作中,我们经常需要处理大量的文件,而文件的时间戳,包括创建时间、修改时间和访问时间,往往对我们的工作有着重要的影响。例如,我们需要追踪文件的更新历史,...

    C_获取当前时间的各种格式

    本文将详细介绍如何利用C#中的`DateTime`类来获取当前时间并将其转换成各种不同的格式。 #### 1. 基本时间格式获取 - **`DateTime.Now.ToShortTimeString()`**:返回当前系统的本地时间,格式化为短时间格式(通常...

    windows 各种时间格式 转换类

    总之,理解和掌握Windows中的时间格式和转换对于开发涉及时间处理的软件至关重要。通过VS2005,开发者可以有效地进行时间操作,处理时区问题,并确保应用程序在全球范围内的正确性。同时,`_udate`文件中的实现细节...

    C#中获取时间的年月日的方法

    `DateTime.Now.ToFileTime()`和`DateTime.Now.ToOADate()`则分别用于获取文件时间戳和Excel OLE自动化日期格式。 #### 方法三:直接操作`DateTime`对象 1. **初始化`DateTime`对象**: ```csharp DateTime ...

    windows时间与unix时间转换程序 UnixWin时间转换程序

    本篇文章将详细解释这两种时间格式以及如何进行相互转换。 Unix时间是一种无符号整数,表示从1970年1月1日00:00:00 UTC到当前时间的秒数。由于这个起点是固定的,因此在计算时间差时非常方便。然而,Unix时间不考虑...

    FileTime.rar_jpg_文件名

    2. **文件重命名**: 提供者创建了一个软件工具,能够将这些数字文件名转换为日期格式。这可以极大地方便用户根据拍摄时间来整理和检索照片,提高管理效率。 3. **两种命名方式**: 这个软件提供了两种方法来获取正确...

    c_时间类型转换

    它提供了丰富的属性和方法来操作和格式化日期与时间。 #### 2. 常见的时间格式转换方法 - **ToShortTimeString()**:将当前日期时间对象转换为本地系统的短时间格式字符串(例如“13:21”)。 - **ToFileTime()**...

    C#获取当前时间的各种格式

    使用 `DateTime.Now` 可以获取当前日期和时间,例如: ``` DateTime dt = DateTime.Now; ``` 2. 获取当前日期和时间的字符串表示 使用 `ToString()` 方法可以将当前日期和时间转换为字符串表示,例如: ``` string ...

    matlab开发-FileTime

    5. `uTest_FileTime.m`是测试脚本,用于验证`GetFileTime`和`SetFileTime`函数的正确性。测试脚本通常包含了一系列测试用例,以确保函数在各种情况下都能正确工作。 6. `license.txt`是许可协议文件,详细列出了...

    Windows日期时间类型与相互转化

    - **FileTimeToDosDateTime**:将FILETIME转换为FAT/MS-DOS日期时间格式。 - **DosDateTimeToFileTime**:将FAT/MS-DOS日期时间转换回FILETIME。 - **VariantTimeToSystemTime**:将VT_DATE转换回SYSTEMTIME。 - **...

    易语言Api格式化时间源码

    总的来说,易语言Api格式化时间源码是关于如何在易语言环境中利用API函数处理和格式化时间的一种技术实践,对于学习易语言的开发者来说,理解并运用这些源码可以帮助他们更好地掌握系统级的时间操作。

    关于C#中DateTime常用方法概述

    ToFileTime()和ToFileTimeUtc()方法将DateTime转换为Windows的64位 FILETIME表示,区别在于ToFileTime()将DateTime转换为本地时间,ToFileTimeUtc()则转换为协调世界时(UTC)。 ToLocalTime()和ToUniversalTime()...

    C++时间类型转换

    与FILETIME不同,SYSTEMTIME是人类友好的格式,易于理解和操作。我们可以使用`SystemTimeToFileTime()`将SYSTEMTIME转换为FILETIME,反之则用`FileTimeToSystemTime()`。 `tm`结构体是C++标准库中的时间类型,通常...

    filetime.zip_Windows Time文件

    `filetime.zip_Windows Time文件`是一个针对Windows系统的工具,它允许用户通过VC++6.0编写的程序来修改文件的创建、修改和访问时间戳。 Windows Time文件的知识点主要涵盖以下几个方面: 1. **文件时间戳**:每个...

    史上最全的日期工具类

    各种你能想到的日期计算,操作。包含常见的年月日间隔计算、比较、格式化

    易语言长整数与日期时间转换源码

    本文将详细讲解易语言中的长整数(Long Integer)和日期时间(Date Time)类型,以及如何在两者之间进行转换。易语言是一种中文编程环境,其设计目标是让编程变得更加简单易懂。 1. **易语言数据类型** - **长整数...

    FileTime.rar

    总的来说,"FileTime.rar"中的代码可能是一个实用工具,帮助用户在处理文件和目录时保持其时间戳不变,这对于维护文件系统的整洁和一致性具有积极意义。使用这样的工具,开发者或用户可以更好地管理和同步他们的文件...

Global site tag (gtag.js) - Google Analytics