毫秒计数转化为std::tm以及SYSTEM

简介: 毫秒计数转化为std::tm以及SYSTEM
#include <windows.h>
#include <chrono>
#include <ctime>
#include <iostream>
using namespace std;
LONGLONG GetCurTime()
{
  return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
}
int main()
{
  INT64 milli = GetCurTime() + (INT64)8 * 60 * 60 * 1000;//此处转化为东八区北京时间,如果是其它时区需要按需求修改
  auto mTime = std::chrono::milliseconds(milli);
  auto tp = std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds>(mTime);
  auto tt = std::chrono::system_clock::to_time_t(tp);
  std::tm* now = std::gmtime(&tt);
  printf("%4d年%02d月%02d日 %02d:%02d:%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
    //struct tm结构和struct SYSTEMTIME结构的年和月的取值范围是不一样的 :
    //tm.tm_mon = systemtime.wMonth - 1
    //tm.tm_year = systemtime.wYear - 1900
    SYSTEMTIME st;
  st.wYear = now->tm_year + 1900;
  st.wMonth = now->tm_mon + 1;
  st.wDayOfWeek = now->tm_wday;
  st.wDay = now->tm_mday;
  st.wHour = now->tm_hour;
  st.wMinute = now->tm_min;
  st.wSecond = now->tm_sec;
  st.wMilliseconds = 0;
    while (1);
  return 0;
}
相关文章
|
6月前
String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)
String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)
64 1
|
6月前
将毫秒数量转换为时分秒字符串(毫秒数→转换为→00:00:00.000或00天00时00分00秒000毫秒形式)
将毫秒数量转换为时分秒字符串(毫秒数→转换为→00:00:00.000或00天00时00分00秒000毫秒形式)
|
6月前
|
Java
Java中Long转Int转字符串Int转Long以及Int超出长度判断
Java中Long转Int转字符串Int转Long以及Int超出长度判断
62 0
|
6月前
|
安全 C++
C++ std::thread::detch函数之遇坑记录
调用thread::detch后,程序有可能会在当前调用函数执行完之后才去构造实参对象
82 0
C++ std::thread::detch函数之遇坑记录
|
Java
java判断当前时间是否在某个时间区间内(可精确到毫秒)
java判断当前时间是否在某个时间区间内(可精确到毫秒)
847 0
java判断当前时间是否在某个时间区间内(可精确到毫秒)
|
JavaScript Dubbo 小程序
还在用 System.currentTimeMillis() 统计代码耗时?太 Low 啦
还在用 System.currentTimeMillis() 统计代码耗时?太 Low 啦
【1117】Eddington Number (25分)【模拟】
【1117】Eddington Number (25分)【模拟】 【1117】Eddington Number (25分)【模拟】
88 0