跨平台获取一天中的时间的方式
Cross Platform way to get the time of day?
有没有一种简单的方法来获取一天中的时间(17:30,01:20...等),可以在iOS,OSX,Linux和Windows上运行?
如果没有,是否有Windows方式和posix方式或其他方法?
谢谢
您可以使用time_t now = time(NULL);
或time(&now);
检索时间
然后,您通常使用 struct tm *tm_now = localtime(&now);
转换为本地时间。struct tm
包含年、月、日、星期几、小时、分钟和秒的字段。如果要生成可打印的输出,strftime
直接支持。
这两者都在 C 和 C++ 标准中,因此它们在大多数普通平台上都可用。
如果你真的只关心C++,你可以使用 std::put_time
,它类似于 strftime
,但对于将输出写入流的典型情况来说使用起来稍微简单一些。
您可以使用C++11
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
std::time_t t = std::time(nullptr);
std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << 'n'
<< "local: " << std::put_time(std::localtime(&t), "%c %Z") << 'n';
}
应该在(任何平台上)生产
UTC: 星期三 12月 28 11:47:03 2011 GMT
当地时间:2011 年 12 月 28 日星期三 06:47:03 EST
虽然std::put_time()
(来自iomanip
)尚未在GCC 4.7.0中实现。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 如何在c++中为模板函数实例创建快捷方式
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在c代码之间共享数据的最佳方式
- 如何以" Safe "的方式获取 C++ 中的当前时间
- 长度库,其实现方式类似于C++时间的计时
- 从getSystemtime preciseasfiletime()到本地时间可靠的快速方式
- 在 Linux 中获取时间戳的"最便宜"方式 (c++)
- 跨平台获取一天中的时间的方式
- 在 x 时间后结束循环的性能最低占用方式
- 以编程方式设置唤醒时间
- 以特定方式获取时间
- 什么是最快的方式来获得日期,时间和解析成字符串以及一些其他信息
- 强制输入,或更简单的方式为有限的时间等待用户输入
- c++中静态数据初始化的时间和方式
- 以增量的方式使用z3,但会导致更多的时间