time_t ,CTime,SYSTEMTIME,CTime,COleDateTime,COleVariant之间的互相转换代码及讲解
时间: 2024-05-05 19:21:33 浏览: 239
Cstring 和Time之间的相互转换
time_t是C/C++语言标准库中的时间类型,表示从格林威治时间1970年1月1日00:00:00到当前时间的秒数。CTime、SYSTEMTIME、COleDateTime、COleVariant是MFC中的时间类型,用于便捷地进行日期和时间的操作。
下面是它们之间的互相转换代码及讲解:
1. time_t to CTime
```cpp
time_t t = time(NULL);
CTime time(t);
```
这段代码将当前时间的time_t类型转换为CTime类型。CTime类型的构造函数可以接受time_t类型的参数,将其转换为CTime类型。
2. CTime to time_t
```cpp
CTime time(2021, 10, 1, 0, 0, 0);
time_t t = time.GetTime();
```
这段代码将指定时间的CTime类型转换为time_t类型。CTime类型的GetTime函数返回从格林威治时间1970年1月1日00:00:00到当前时间的秒数,即time_t类型。
3. SYSTEMTIME to CTime
```cpp
SYSTEMTIME st;
GetLocalTime(&st);
CTime time(st);
```
这段代码将当前时间的SYSTEMTIME类型转换为CTime类型。CTime类型的构造函数可以接受SYSTEMTIME类型的参数,将其转换为CTime类型。
4. CTime to SYSTEMTIME
```cpp
CTime time(2021, 10, 1, 0, 0, 0);
SYSTEMTIME st;
time.GetAsSystemTime(st);
```
这段代码将指定时间的CTime类型转换为SYSTEMTIME类型。CTime类型的GetAsSystemTime函数将CTime类型转换为SYSTEMTIME类型。
5. COleDateTime to CTime
```cpp
COleDateTime dt;
dt = COleDateTime::GetCurrentTime();
CTime time(dt.GetYear(), dt.GetMonth(), dt.GetDay(), dt.GetHour(), dt.GetMinute(), dt.GetSecond());
```
这段代码将当前时间的COleDateTime类型转换为CTime类型。COleDateTime类型的GetCurrentTime函数返回当前时间的COleDateTime类型,CTime类型的构造函数可以接受COleDateTime类型的参数,将其转换为CTime类型。
6. CTime to COleDateTime
```cpp
CTime time(2021, 10, 1, 0, 0, 0);
COleDateTime dt(time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
```
这段代码将指定时间的CTime类型转换为COleDateTime类型。COleDateTime类型的构造函数可以接受CTime类型的参数,将其转换为COleDateTime类型。
7. COleVariant to CTime
```cpp
COleVariant var;
var = COleDateTime::GetCurrentTime();
CTime time(var.date);
```
这段代码将当前时间的COleVariant类型转换为CTime类型。COleVariant类型的构造函数可以接受COleDateTime类型的参数,将其转换为COleVariant类型,CTime类型的构造函数可以接受DATE类型的参数,将其转换为CTime类型。
8. CTime to COleVariant
```cpp
CTime time(2021, 10, 1, 0, 0, 0);
COleVariant var(time);
```
这段代码将指定时间的CTime类型转换为COleVariant类型。COleVariant类型的构造函数可以接受CTime类型的参数,将其转换为COleVariant类型。
阅读全文