filetime,systemtime相互转化,获取文件创建时间,访问时间,修改时间,获取指定时间之前之后的SYSTEMTIME
// deleteOldFiles.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <windows.h>
#include <string>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <sys/types.h>
#include <sys/stat.h>using namespace std;
#pragma warning(disable:4996)
int main()
{//typedef struct _SYSTEMTIME {// WORDwYear;// WORDwMonth;// WORDwDayOfWeek;// WORDwDay;// WORDwHour;// WORDwMinute;// WORDwSecond;// WORDwMilliseconds;//} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;//得到当前UTC时间SYSTEMTIME st;GetSystemTime(&st);char buf[128] = { 0 };sprintf_s(buf,"%04d-%02d-%02d %02d:%02d:%02d:%03d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds);cout << "UTC时间为" << buf << endl;//得到本地时间SYSTEMTIME stLocal;GetLocalTime(&stLocal);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);cout << "本地时间为" << buf << endl;//FileTime:Contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC时间).//从1601到现在经历的100纳秒数,8个字节变量//typedef struct _FILETIME {// DWORDdwLowDateTime;// DWORDdwHighDateTime;//} FILETIME, *PFILETIME, *LPFILETIME;//SYSTEMTIME转成FILETIME//BOOL// WINAPI// SystemTimeToFileTime(// _In_ CONST SYSTEMTIME * lpSystemTime,// _Out_ LPFILETIME lpFileTime// );//SYSTEMTIME转FILETIMEFILETIME ft;SystemTimeToFileTime(&st, &ft);//FILETIME转SYSTEMTIMESYSTEMTIME st2;FileTimeToSystemTime(&ft, &st2);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", st2.wYear, st2.wMonth, st2.wDay, st2.wHour, st2.wMinute, st2.wSecond, st2.wMilliseconds);cout << "UTC时间为" << buf << endl;//当地时间转UTC时间FILETIME ftLocal;SystemTimeToFileTime(&stLocal, &ftLocal);LocalFileTimeToFileTime(&ftLocal, &ft);FileTimeToSystemTime(&ft, &st2);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", st2.wYear, st2.wMonth, st2.wDay, st2.wHour, st2.wMinute, st2.wSecond, st2.wMilliseconds);cout << "UTC时间为" << buf << endl;FileTimeToLocalFileTime(&ft, &ftLocal);FileTimeToSystemTime(&ftLocal, &stLocal);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);cout << "本地时间为" << buf << endl;//获取十天之前的日期ULARGE_INTEGER u1,offset,u2;offset.QuadPart = UInt32x32To64(10 * 24 * 3600, 10000000);u1.LowPart = ftLocal.dwLowDateTime;u1.HighPart = ftLocal.dwHighDateTime;u2.QuadPart = u1.QuadPart - offset.QuadPart;ftLocal.dwLowDateTime = u2.LowPart;ftLocal.dwHighDateTime = u2.HighPart;SYSTEMTIME stOld;FileTimeToSystemTime(&ftLocal, &stOld);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", stOld.wYear, stOld.wMonth, stOld.wDay, stOld.wHour, stOld.wMinute, stOld.wSecond, stOld.wMilliseconds);cout << "十天前时间为" << buf << endl;//获取文件的创建时间,修改时间,访问时间HANDLE handleFile = CreateFileW(L"F:\\output\\测试文档.docx", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);if (handleFile != INVALID_HANDLE_VALUE){FILETIME ftCreationTime, ftLastAccessTime, ftLastWriteTime;GetFileTime(handleFile, &ftCreationTime, &ftLastAccessTime, &ftLastWriteTime);SYSTEMTIME creatTime, accessTime, modifyTime;FILETIME ftCreationTimeLocal, ftLastAccessTimeLocal, stLastWriteTimeLocal;FileTimeToLocalFileTime(&ftCreationTime, &ftCreationTimeLocal);FileTimeToLocalFileTime(&ftLastAccessTime, &ftLastAccessTimeLocal);FileTimeToLocalFileTime(&ftLastWriteTime, &stLastWriteTimeLocal);FileTimeToSystemTime(&ftCreationTimeLocal, &creatTime);FileTimeToSystemTime(&ftLastAccessTimeLocal, &accessTime);FileTimeToSystemTime(&stLastWriteTimeLocal, &modifyTime);memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", creatTime.wYear, creatTime.wMonth, creatTime.wDay, creatTime.wHour, creatTime.wMinute, creatTime.wSecond, creatTime.wMilliseconds);cout << "创建时间为" << buf << endl;memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", accessTime.wYear, accessTime.wMonth, accessTime.wDay, accessTime.wHour, accessTime.wMinute, accessTime.wSecond, accessTime.wMilliseconds);cout << "访问时间为" << buf << endl;memset(buf, 0, 128);sprintf_s(buf, "%04d-%02d-%02d %02d:%02d:%02d:%03d", modifyTime.wYear, modifyTime.wMonth, modifyTime.wDay, modifyTime.wHour, modifyTime.wMinute, modifyTime.wSecond, modifyTime.wMilliseconds);cout << "修改时间为" << buf << endl;CloseHandle(handleFile);}return 0;
}
运行结果:
filetime,systemtime相互转化,获取文件创建时间,访问时间,修改时间,获取指定时间之前之后的SYSTEMTIME相关推荐
- excel中单元格日期为计算机日期,#excle里设置今天的日期#excel表格时间如何自动修改为当天的时间...
excel表格时间如何自动修改为当天的时间 插入=TODAY()这个函数 如何在EXCEL表格里显示今天的日期 两种,一是永久显示今如今天显示2016-7-3,明天仍然显示显示2016-7-3么在需要 ...
- linux查找某时间后的关键字,linux - 查找指定时间的文件及文件中的关键字
Linux查找某个时间内的文件 1.? n天内修改的(-ctime) find . -type f -ctime -1| xargs ls –l 说明: (1) -type f 只搜索文件,不包含文件 ...
- mysql修改字段为现在时间_mysql如何修改字段自动生成时间
mysql修改字段自动生成时间的方法:1.添加CreateTime设置默认时间:2.修改CreateTime设置默认时间:3.添加UpdateTime设置默认时间. 本教程操作环境:windows7系 ...
- ubuntu mysql 更新时间_Ubuntu Server 修改mysql timeout超时时间
wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到"MySQL has gone aw ...
- mysql查询特定时间数据视频_MySQL如何查询指定时间数据
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添 ...
- python两种方法读取、修改文件的创建时间、修改时间、访问时间
看到网上有人出于特种目前,需要修改文件的创建时间和修改时间(访问时间是只要在操作系统里打开文件,系统就会自动更改最后的访问时间,因此此时间无意义,于是在网上查阅结合自己的经验,归纳 一下可行方案,在 ...
- 文件里的三个重要时间:access time(访问时间), modify time(修改时间), change time(状态改动时间)
文件里的三个重要时间:access time(访问时间), modify time(修改时间), change time(状态改动时间),下面我将先介绍一下这个时间的修改与查看. touch 命令:t ...
- java根据当前时间或指定时间获取前后几天或前后几个月或前后几年的时间
根据当前时间计算 获取前后几天 /*** @Author: ljh* @Description:获取任意天后的时间* @DateTime: 18:52 2022/11/23* @Params: day ...
- js获取当前时间戳;指定时间转换时间戳;时间戳转换时间
1 JavaScript 获取当前时间戳: 方法一 var timestamp = Date.parse(new Date()); 结果:1557479983000 方法二 var timestamp ...
- 修改服务器时间报错,修改服务器时间linux
修改服务器时间linux 内容精选 换一换 IPv6的使用,可以有效弥补IPv4网络地址资源有限的问题.如果当前云服务器使用IPv4,那么启用IPv6后,云服务器可在双栈模式下运行,即云服务器可以拥有 ...
最新文章
- Permission 0644 for .ssh/id_rsa Are Too Open 解决办法
- 成功解决利用pandas输出DataFrame格式数据表时没有最左边的索引编号(我去,这个问题折腾了我半个多小时)
- c#和WIN32 调用
- 前端学习(1401):多人管理21新增用户
- 理解Java对象序列化——Serializable接口
- [转]Delphi 12种大小写转换的方法
- 聚焦BCS|吴云坤产业峰会演讲:用内生安全框架提升网络安全产值
- 【初赛】排列组合的一点笔记
- c++ makefile和cmake
- 程序大师的方天画戟 - vicc
- VSCode 插件Code Runner 中文提示乱码
- 兄弟机cnc系统面板图解_兄弟机操作面板及编程
- linux docker安装 制作Elasticsearch容器镜像 并上传docker hub
- 嵌入式linux与pc串口传输文件基于lrzsz
- 《寒江独钓——windows内核安全编程》vs2019+wdk10开发xp驱动
- 虚拟化技术(一)——虚拟化简介
- python-flask-制作网页入门1
- ICV:超声波雷达迎来数字化变革,2026年全球市场规模将达145亿美元
- linux和Windows线程进程的区别
- 小区DMA漏控平台(Axure高保真原型)