火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 167|回复: 3
打印 上一主题 下一主题

[视窗] RAR文件解压类获取的压缩文件时间整数是什么?

[复制链接]

3

主题

15

帖子

169

积分

注册会员

Rank: 2

积分
169
跳转到指定楼层
楼主
发表于 2024-4-5 18:24:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序中已将所有要用到的资源文件都压缩到一个RAR压缩包中,以减少体积。
编程时用到相关文件时,就用“RAR文件解压类”解压缩需要的文件,但想在之前比较目录中已有的相同文件日期是不是最新的。用“取当前文件日期 ()”查看压缩包中文件日期时,发现返回一个很大的整数,想知道这个整数如何转换到火山PC的时间类型?

回复

使用道具 举报

28

主题

338

帖子

2877

积分

金牌会员

Rank: 6Rank: 6

积分
2877
沙发
发表于 2024-4-5 19:00:13 | 只看该作者
filetime  表示自1601年1月1日以来的100纳秒间隔数。
回复

使用道具 举报

26

主题

1481

帖子

5565

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5565
板凳
发表于 2024-4-5 20:25:18 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

方法 文件时间到文本 <公开 静态 类型 = 文本型 注释 = "将FILETIME转换到指定格式的时间文本" 折叠 @禁止流程检查 = 真>
参数 文件时间 <类型 = 长整数>
参数 格式文本 <类型 = 文本型 注释 = "默认格式为: \"2022-03-21 09:19:05\",转换后不能超过256个字符." 注释 = "下列为可用的格式替换符:"
        注释 = "   %%  %字符  |  %n 换行符  |  %t 水平制表符" 注释 = "   %C  年份向下整除100          例: 20"
        注释 = "   %y  年份的后2位              例: 22" 注释 = "   %Y  完整的4位年份            例: 2022"
        注释 = "   %h  缩写的月份名称           例: Apr" 注释 = "   %b  缩写的月份名称           例: Apr"
        注释 = "   %B  完整的月份名称           例: April" 注释 = "   %m  十进制的月份             例: 04"
        注释 = "   %d  2位数的某月第N天         例: 01" 注释 = "   %e  2位的某月第N天,前补空格  例:  1"
        注释 = "   %a  缩写的星期名称           例: Fri" 注释 = "   %A  完整的星期名称           例: Friday"
        注释 = "   %u  十进制的星期数(1-7)      例: 5" 注释 = "   %w  星期数(0-6),0为星期天    例: 5"
        注释 = "   %j  3位数的某年第N天         例: 091" 注释 = "   %U  2位数的某年第N星期       例: 13"
        注释 = "   %W  2位数的某年第N星期       例: 13" 注释 = "   %D  等价于 %m/%d/%y          例: 04/01/22"
        注释 = "   %F  等价于 %Y-%m-%d          例: 2022-04-01" 注释 = "   %H  2位数的小时数(24小时制)  例: 16"
        注释 = "   %I  2位数的小时数(12小时制)  例: 04" 注释 = "   %M  2位数的分钟数            例: 15"
        注释 = "   %S  2位数的秒针数            例: 05" 注释 = "   %p  12小时进制的AM/PM        例: PM"
        注释 = "   %R  等价于 %H:%M             例: 16:15" 注释 = "   %T  等价于 %H:%M:%S          例: 16:15:05"
        注释 = "   %r  12小时制的时分秒时间     例: 04:15:05 PM" 注释 = "   %X  本地环境的12小时制时钟   例: 16:15:05"
        注释 = "   %x  本地环境的日期           例: 04/01/22" 注释 = "   %z  UTC格式的时区            例: +0800"
        注释 = "   %Z  时区的本地名称           例: 中国标准时间" 注释 = "   %c  本地环境的日期与时间     例: Fri Apr  1 16:59:32 2022"
        注释 = "" 注释 = "  格式替换符可以在中间加上#,部分无效果; 部分会将前面的补0或补"
        注释 = "空格去掉,比如\"%#F\"会解析为\"2022-4-1\"; 其中\"%#c\"和\"%#x\"会解析" 注释 = "为更长的日期时间格式." @默认值 = "%F %T">
{
    @ struct tm timeinfo;
    @ time_t rawtime = (time_t)(@<文件时间> / 10000000 - 11644473600)
    @ ::localtime_s(&timeinfo, &rawtime);
    @ WCHAR szTime[256] {0};
    @ ::wcsftime(szTime, sizeof(szTime), @<格式文本>.GetText(), &timeinfo);
    @ return @an<CVolString>(szTime);
}

方法 文件时间到时间 <公开 静态 类型 = 小数 注释 = "将FILETIME转换到火山的时间类型" 折叠>
参数 文件时间 <类型 = 长整数>
{
    返回 (时间操作类.时间戳到时间 ((整数)(文件时间 / 10000000 - 11644473600)))
}
回复

使用道具 举报

3

主题

15

帖子

169

积分

注册会员

Rank: 2

积分
169
地板
 楼主| 发表于 2024-4-5 22:42:16 | 只看该作者
多谢大神
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-2 21:31 , Processed in 0.090699 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表