3

我有一个 Java 应用程序,我需要使用 JNA 调用一个 Windows DLL。我需要调用的函数实际上需要一个__int64(在内部它将它分成FILETIME结构的低/高部分)。给定一个java.util.Date对象,如何将其转换为格式化为 a 的适当值FILETIME

4

3 回答 3

5

这就是使用 Java nio 的方法

    BasicFileAttributes attr = Files.readAttributes(filePath, BasicFileAttributes.class);
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    Date d = new Date(attr.creationTime().toMillis()); //attr.creationTime() returns a FileTime             
    System.out.println(df.format(d));
于 2012-12-13T18:44:54.437 回答
3

好的,我想我想通了:

long date = (new Date().getTime() + 11644473600000L) * 10000L;
于 2010-08-11T18:12:57.590 回答
2

JNA 在位于 Platform jar 中 的FILETIME类上提供了一些静态方法。

FILETIME.dateToFileTime( Date date );
FILETIME.filetimeToDate( int high, int low );
于 2011-06-13T15:05:30.683 回答