时间处理

zeuz 使用一种非标准的时间戳格式。大多数计算机和系统计算时间的起点是 1970 年 1 月 1 日,而 zeuz 计算时间的起点是 1900 年 1 月 1 日。

资讯:我是否需要将时间值转换为 zeuz 格式?

如果您可以使用 SDK 下载中提供的封装之一或 Go SDK,就不需要将时间值转换为 zeuz 格式,因为封装和 SDK 会为您完成此项操作。请参阅 API 简介,检查您是否可以使用这些选项,如果您可以使用这些选项之一,就无需直接访问 zeuz 基础 API。

在下列情况下,必须直接访问 zeuz 基础 API:

  • 您不使用 Unity、虚幻引擎或 Go 开发游戏。
  • 您想调用 zeuz API 为您的游戏建立工具,例如,将您的游戏集成到 CI/CD 管道中。

使用 zeuz SDK

zeuz SDK 为您处理时间转换,将时间值转换为 zeuz 格式。如果您使用 Unity 封装、虚幻引擎封装或 Go SDK,我们建议您使用 SDK 中的 Timestamp 数据类型来存储时间值。Timestampint64 类型的数据,可适应 zeuz 时间戳格式。

使用 zeuz 基础 API

如果您直接使用 zeuz 基础 API,您的脚本中必须包含一个函数,将时间值转换为 zeuz 格式。把时间值存储为 64 位整数的数据类型,以适应 zeuz 时间戳格式。

在使用 zeuz 基础 API 发送 API 请求时,正确的时间处理非常重要,因为您使用一个有效期为 24 小时的会话密钥来认证请求。

转换示例

下列示例函数获取当前系统时间,并将其转换为 zeuz 格式。

C++ 代码示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
long zeuz_now() 
{
   // 从计算机时钟获取当前的系统时间。
   auto now = std::chrono::system_clock::now();

   // 将当前时间转换为毫秒。
   auto now_ms = std::chrono::time_point_cast<std::chrono::seconds>(now);

   // 获取自1970年1月1日以来的时间 (毫秒)。
   // 注意:Unix的纪元是1970年1月1日的00:00:00 UTC时间。
   auto epoch = now_ms.time_since_epoch();

   // 获取自1970年1月1日以来的时间 (毫秒)。
   // 从1900年起将其转换为毫秒数。
   // 将结果从毫秒转换为微妙。
   return (epoch.count() + 2208988800) * 1000 * 1000;
}

请参阅 API 登录 页面,了解包含上述时间转换的登录脚本示例。

关于 zeuz 基础 API 认证的更多信息,请参阅下列文档:



2021年5月27日 该文档已更新并通过审校


最近更新时间: October 20, 2021 (67563380)