vc中的时间

时间类型:SYSTMETIME、FILETIME、DosTime

1.SYSTEMTIME直接记录年月日时分秒和毫秒,还有星期几,结构如下,无需解释:

typedef struct _SYSTEMTIME {

    WORD wYear;

    WORD wMonth;

    WORD wDayOfWeek;

    WORD wDay;

    WORD wHour;

    WORD wMinute;

    WORD wSecond;

    WORD wMilliseconds;

} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

2.FILETIME 按毫秒计算的win32时间,也就是每过1ms dwLowDateTime就累加1,加满了就给dwHighDateTime进一位。

typedef struct _FILETIME {

    DWORD dwLowDateTime;

    DWORD dwHighDateTime;

} FILETIME, *PFILETIME, *LPFILETIME;

3.DosTime

WORD  wFatDate, wFatTime;  //两个16位的数

wFatDate0-4位是日,5-8位是月,8-15位是年

wFatTime0-4位是秒,5-10位是分,11-15位是时


获得时间的方法:

void GetSystemTime(LPSYSTEMTIME lpSystemTime);  //用该方法获得的时间是格林威治时间(UTC时间),而不是当前计算机右下角的时间。

void GetLocalTime(LPSYSTEMTIME lpSystemTime);  //该方法获得的是本地时间。

void GetSystemTimeAsFileTime(LPFILETIME lpFileTime); //该方法或的的也是格林威治时间。

GetThreadTimes():  //获得线程时间,就不注解了

DWORD GetTickCount(void);  //这是获得机器启动后的计时时间,也是按毫秒计时的。


时间格式转换:

BOOL SystemTimeToFileTime(const SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime);

BOOL FileTimeToSystemTime(const FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime);

BOOL FileTimeToDosDateTime(const FILETIME *lpFileTime, LPWORD lpFatDate, LPWORD lpFatTime);

BOOL DosDateTimeToFileTime(LPWORD lpFatDate, LPWORD lpFatTime, LPFILETIME lpFileTime);

INT SystemTimeToVariantTime(LPSYSTEMTIME *lpSystemTime, DOUBLE *pvtime);  //就是将时间转换成一个double值。

VariantTimeToSystemTime();  //转回来不解释。

DosDateTimeToVariantTime();

VariantTimeToDosDateTime();//类似SystemTime的转换


时区的转换:
BOOL FileTimeToLocalFileTime(const FILETIME *lpFileTime ,LPFILETIME lpLocalFileTime);  //将格林威治的'FILETIME'转换成本地'FILETIME'。

BOOL LocalFileTimeToFileTime(); //本地时间转化成格林威治时间

BOOL SystemTimeToTzSpecificLocalTime(const TIME_ZONE_INFORMATION *lpTimeZoneInformation, const SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime);   //


时区结构:

typedef struct _TIME_ZONE_INFORMATION {

    LONG Bias;

    WCHAR StandardName[ 32 ];

    SYSTEMTIME StandardDate;

    LONG StandardBias;

    WCHAR DaylightName[ 32 ];

    SYSTEMTIME DaylightDate;

    LONG DaylightBias;

} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;


获取和设置时区信息:

DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation); 

BOOL SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION lpTimeZoneInformation); 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值