ctimespan 获取毫秒_怎么样进行 CTime 时间大小比较!

时间转换技巧
本文详细介绍了在Windows编程中,不同时间格式之间的转换方法,包括UTC与本地时间、FILETIME与SYSTEMTIME、CTime与FILETIME之间的转换,以及CFileTime、CFileTimeSpan等类的应用。
部署运行你感兴趣的模型镜像

处理时间偶尔会小小的纠结下,尤其是UTC和local的时差问题,下面直入主题:

1.UTC和local

FILETIME有2种时间标准UTC和local,在MFC界面程序获取的为local基准,后台数据库往往用UTC基准存储,两者的转化如下:

FILETIME ft_UTC,ft_local;

::LocalFileTimeToFileTime(&ft_local,&ft_UTC);

::FileTimeToLocalFileTime(&ft_UTC,&ft_local);

2.SYSTEMTIME和FILETIME

搞定了FILETIME,接下去就是与SYSTEMTIME如何相互转化:

FILETIME ft_tm;

SYSTEMTIME sys_tm;

::FileTimeToSystemTime(&ft_tm,&sys_tm);

::SystemTimeToFileTime(&sys_tm,&ft_tm);

3.CTime和SYSTEMTIME、FILETIME

想要将CTime转化为FILETIME,则必须通过中间桥梁SYSTEMTIME来过渡

FILETIME ft_tm;

CTime tNow(2010,8,12,10,10,00);

tNow.GetAsSystemTime(sys_tm);

::SystemTimeToFileTime(&sys_tm,&ft_tm); ->得到想要的FILETIME

::FileTimeToSystemTime(&ft_tm,&sys_tm);

tNow = CTime(sys_tm);    ->得到想要的CTime

4.CFileTime、CFileTimeSpan、CTime、CTimeSpan

我们看下CFileTime的声明就明白了:

class CFileTime :public FILETIME

CFileTime结构内存与FILETIME相等,所以可以直接强制转化无需担心内存越界。

CFileTime是对FILETIME的外层封装,加了一些操作符=、+、-、+=、-=、<=、>=、!=...

CFileTimeSpan我想白痴都知道怎么用,唯一要明确的就是数量积:

static const ULONGLONG Millisecond = 10000;

static const ULONGLONG Second = Millisecond * 1000;

static const ULONGLONG Minute = Second * 60;

static const ULONGLONG Hour = Minute * 60;

static const ULONGLONG Day = Hour * 24;

static const ULONGLONG Week = Day * 7;

明白了吧?CFileTimeSpan的数量积是0.1纳秒,CTimeSpan的数量积是秒,

CFileTimeSpan = CTimeSpan*10000000

这样就方便我们直接操作FILETIME,而无需非得转成CTime处理。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值