主页C++ Builder 资料C++ Builder 参考手册System 日期和时间UnixToDateTime
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
cmath 数学函数
cstdlib 标准库函数
System 字符串
System 日期和时间
 • TDate
 • TTime
 • TDateTime
 • TDateTimeBase
 • Now
 • UnixToDateTime
 • DateTimeToUnix
 • DateTimeToStr
 • DateToStr
 • DecodeDate
 • DecodeTime
 • DecodeDateTime
 • FormatDateTime
 • StrToDate
 • StrToDateDef
 • StrToDateTime
 • StrToDateTimeDef
 • StrToTime
 • StrToTimeDef
 • TimeToStr
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
VCL 应用程序
Pictures 图片
Graphics 绘图
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
UnixToDateTime - 把 UNIX 时间戳转为 TDateTime 类型的日期时间

函数原型:

TDateTime __fastcall UnixToDateTime(const __int64 AValue, bool AReturnUTC = true);

头文件:

#include <System.DateUtils.hpp> (XE2 之后) #include <DateUtils.hpp> (XE 之前)

参数:

AValue: UNIX 时间戳,从 UTC 时间 1970年1月1日0时开始的,到这个时刻的秒数;
AReturnUTC: 函数返回值的时间是 UTC 时间。true: 返回 UTC 时间,false: 返回本地时间。

返回值:

TDateTime 类型的 UTC 时间或本地时间。

这个函数的时间戳是 __int64 类型的,没有 “2038年问题” 或 “Year 2038 problem” 了,
实际测试,一直计算到 9999年12月31日都没有问题。

 

例:把本地时间 9999年12月31日 23:59:59 转为 UNIX 时间戳,再把时间戳转回本地时间

void __fastcall TForm1::Button5Click(TObject *Sender)
{
  TDateTime dt1 = TDateTime(9999,12,31,23,59,59,999);
  __int64 iTimeStamp = DateTimeToUnix(dt1, false);
  Memo1->Lines->Add(L"UNIX 时间戳:" + IntToStr(iTimeStamp));
  TDateTime dt2 = UnixToDateTime(iTimeStamp, false);
  Memo1->Lines->Add(L"本地时间:" + dt2);
}

运行结果:

UNIX 时间戳:253402271999
本地时间:9999-12-31 23:59:59
◤上一页:Now下一页:DateTimeToUnix

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号