美文网首页
C++时间与日期操作

C++时间与日期操作

作者: 046ef6b0df68 | 来源:发表于2018-02-07 13:00 被阅读25次

文|Seraph

1. 时间换算

1纳秒等于十亿分之一秒(10-9秒)
1 纳秒 = 1000皮秒
1,000 纳秒 = 1微秒
1,000,000 纳秒 = 1毫秒
1,000,000,000 纳秒 = 1秒

2. 时间类型

UTC (Coordinated Universal Time):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。

Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。

epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。

clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。

3. 时间数据结构
  • FILTIME结构

FILETIME结构持有的64位无符号的文件的日期和时间值。此值表示自1601年1月1日开始的100纳秒为单位的时间。

typedef struct _FILETIME {
DWORD dwLowDateTime; /* 低 32 位 */
DWORD dwHighDateTime; /* 高 32 位 */
} FILETIME, *PFILETIME, *LPFILETIME;
  • SYSTEMTIME结构

SYSTEMTIME结构定义如下:

SYSTEMTIME STRUCT
{
WORD wYear ; 年
WORD wMonth ;月
WORD wDayOfWeek ;星期,0=星期日,1=星期一...
WORD wDay ;日
WORD wHour ;时
WORD wMinute ;分
WORD wSecond ;秒
WORD wMilliseconds ;毫秒
}SYSTEMTIME ENDS
4. UTC时间操作

公式:UTC + 时区差 = 本地时间

  • 得到当前UTC时间
void GetSystemTime(LPSYSTEMTIMElpSystemTime);
  • 得到当地时间
void GetLocalTime(LPSYSTEMTIMElpSystemTime);
  • SYSTEMTIME转成FILETIME
BOOL SystemTimeToFileTime(
    const SYSTEMTIME* lpSystemTime,
    LPFILETIMElpFileTime
);
  • FILETIME转成SYSTEMTIME
BOOL FileTimeToSystemTime(
    const FILETIME* lpFileTime,
    LPSYSTEMTIMElpSystemTime
);
  • 当地时间转成UTC时间
BOOL LocalFileTimeToFileTime(
    const FILETIME* lpLocalFileTime,
    LPFILETIMElpFileTime
);
  • UTC时间转成当地时间
BOOL FileTimeToLocalFileTime(
       const FILETIME* lpFileTime,
       LPFILETIMElpLocalFileTime
);

相关文章

  • C++---- 日期 & 时间

    C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相...

  • C++<第二十篇>:日期与时间

    C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相...

  • 各种时间函数的恩与怨

    C++标准库没有提供所谓的日期类型。C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数...

  • C++时间与日期操作

    文|Seraph 1. 时间换算 1纳秒等于十亿分之一秒(10-9秒)1 纳秒 = 1000皮秒1,000 纳秒 ...

  • C/C++编程笔记:C语言中time.h用法详解(二),函数应用

    接上节丨C/C++编程笔记:C++中对日期和时间操作(一),计时函数详解 4.与日期和时间相关的函数及应用 在本节...

  • 3 日期与时间操作

    在编写程序时,有时我们需要使用日期和时间,java提供了Calendar 类来提供实现。 获取系统当前时间 利用C...

  • C++日期和时间

    c++标准库中没有所谓的日期类型,沿用的还是c语言中的日期和时间操作的结构和函数。包含头文件

  • Python基础—日期与时间操作

    点击—我的博客原文 Python标准库中提供了datatime模块来操作日期和时间 Demo Github源码 环...

  • 操作日期和时间

    操作日期和时间 标签(空格分隔): SQL DB2 我们都知道数字可以进行加、减、乘、除等运算。那么,日期时间可不...

  • C/C++编程笔记:C语言中time.h用法详解(一),满满的都

    本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计...

网友评论

      本文标题:C++时间与日期操作

      本文链接:https://www.haomeiwen.com/subject/imxsaxtx.html