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;
}
}
分享到:
相关推荐
2. **FILETIME结构**:理解其在Windows中的作用,如何读取和转换64位时间戳。 3. **文件I/O操作**:学习如何在C++中打开、读取和处理文件信息,尤其是获取文件的创建时间。 4. **用户界面设计**:通过Main.dfm文件...
`time_t`、`tm`、`SYSTEMTIME` 和 `FILETIME` 是四种不同的时间表示方式,它们各有特点,并且在不同场景下有各自的用途。本文将深入探讨这些类型之间的转换方法,以便更好地理解和操作时间数据。 `time_t` 是C++...
根据给定的信息,我们可以深入探讨C#中DateTime类的各种操作及其转换方法,特别是与日期时间相关的格式化处理。 ### C# DateTime 类型简介 在C#编程语言中,`DateTime` 类是处理日期和时间的核心类之一。它提供了...
《关于文件时间和办公效率的提升》 在日常的办公工作中,我们经常需要处理大量的文件,而文件的时间戳,包括创建时间、修改时间和访问时间,往往对我们的工作有着重要的影响。例如,我们需要追踪文件的更新历史,...
本文将详细介绍如何利用C#中的`DateTime`类来获取当前时间并将其转换成各种不同的格式。 #### 1. 基本时间格式获取 - **`DateTime.Now.ToShortTimeString()`**:返回当前系统的本地时间,格式化为短时间格式(通常...
总之,理解和掌握Windows中的时间格式和转换对于开发涉及时间处理的软件至关重要。通过VS2005,开发者可以有效地进行时间操作,处理时区问题,并确保应用程序在全球范围内的正确性。同时,`_udate`文件中的实现细节...
`DateTime.Now.ToFileTime()`和`DateTime.Now.ToOADate()`则分别用于获取文件时间戳和Excel OLE自动化日期格式。 #### 方法三:直接操作`DateTime`对象 1. **初始化`DateTime`对象**: ```csharp DateTime ...
本篇文章将详细解释这两种时间格式以及如何进行相互转换。 Unix时间是一种无符号整数,表示从1970年1月1日00:00:00 UTC到当前时间的秒数。由于这个起点是固定的,因此在计算时间差时非常方便。然而,Unix时间不考虑...
2. **文件重命名**: 提供者创建了一个软件工具,能够将这些数字文件名转换为日期格式。这可以极大地方便用户根据拍摄时间来整理和检索照片,提高管理效率。 3. **两种命名方式**: 这个软件提供了两种方法来获取正确...
它提供了丰富的属性和方法来操作和格式化日期与时间。 #### 2. 常见的时间格式转换方法 - **ToShortTimeString()**:将当前日期时间对象转换为本地系统的短时间格式字符串(例如“13:21”)。 - **ToFileTime()**...
使用 `DateTime.Now` 可以获取当前日期和时间,例如: ``` DateTime dt = DateTime.Now; ``` 2. 获取当前日期和时间的字符串表示 使用 `ToString()` 方法可以将当前日期和时间转换为字符串表示,例如: ``` string ...
5. `uTest_FileTime.m`是测试脚本,用于验证`GetFileTime`和`SetFileTime`函数的正确性。测试脚本通常包含了一系列测试用例,以确保函数在各种情况下都能正确工作。 6. `license.txt`是许可协议文件,详细列出了...
- **FileTimeToDosDateTime**:将FILETIME转换为FAT/MS-DOS日期时间格式。 - **DosDateTimeToFileTime**:将FAT/MS-DOS日期时间转换回FILETIME。 - **VariantTimeToSystemTime**:将VT_DATE转换回SYSTEMTIME。 - **...
总的来说,易语言Api格式化时间源码是关于如何在易语言环境中利用API函数处理和格式化时间的一种技术实践,对于学习易语言的开发者来说,理解并运用这些源码可以帮助他们更好地掌握系统级的时间操作。
ToFileTime()和ToFileTimeUtc()方法将DateTime转换为Windows的64位 FILETIME表示,区别在于ToFileTime()将DateTime转换为本地时间,ToFileTimeUtc()则转换为协调世界时(UTC)。 ToLocalTime()和ToUniversalTime()...
与FILETIME不同,SYSTEMTIME是人类友好的格式,易于理解和操作。我们可以使用`SystemTimeToFileTime()`将SYSTEMTIME转换为FILETIME,反之则用`FileTimeToSystemTime()`。 `tm`结构体是C++标准库中的时间类型,通常...
`filetime.zip_Windows Time文件`是一个针对Windows系统的工具,它允许用户通过VC++6.0编写的程序来修改文件的创建、修改和访问时间戳。 Windows Time文件的知识点主要涵盖以下几个方面: 1. **文件时间戳**:每个...
各种你能想到的日期计算,操作。包含常见的年月日间隔计算、比较、格式化
本文将详细讲解易语言中的长整数(Long Integer)和日期时间(Date Time)类型,以及如何在两者之间进行转换。易语言是一种中文编程环境,其设计目标是让编程变得更加简单易懂。 1. **易语言数据类型** - **长整数...
总的来说,"FileTime.rar"中的代码可能是一个实用工具,帮助用户在处理文件和目录时保持其时间戳不变,这对于维护文件系统的整洁和一致性具有积极意义。使用这样的工具,开发者或用户可以更好地管理和同步他们的文件...