- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 C++ Windows 应用程序中,我将 SYSTEMTIME 转换为格式化字符串,如下所示:
SYSTEMTIME systemTime;
GetSystemTime(&systemTime);
char pSystemTime[50];
sprintf_s(pSystemTime, 50, "%04d%02d%02d%02d%02d%02d%03u\0", systemTime.wYear, systemTime.wMonth,
systemTime.wDay, systemTime.wHour,
systemTime.wMinute, systemTime.wSecond,
systemTime.wMilliseconds);
现在我有一个自 UNIX 纪元以来的毫秒数。
long time = 1442524186; //for example
如何将这么长的纪元时间转换为 SYSTEMTIME,以便我也可以将其格式化为字符串?
最佳答案
static UINT64 FileTimeToMillis(const FILETIME &ft)
{
ULARGE_INTEGER uli;
uli.LowPart = ft.dwLowDateTime; // could use memcpy here!
uli.HighPart = ft.dwHighDateTime;
return static_cast<UINT64>(uli.QuadPart/10000);
}
static void MillisToSystemTime(UINT64 millis, SYSTEMTIME *st)
{
UINT64 multiplier = 10000;
UINT64 t = multiplier * millis;
ULARGE_INTEGER li;
li.QuadPart = t;
// NOTE, DON'T have to do this any longer because we're putting
// in the 64bit UINT directly
//li.LowPart = static_cast<DWORD>(t & 0xFFFFFFFF);
//li.HighPart = static_cast<DWORD>(t >> 32);
FILETIME ft;
ft.dwLowDateTime = li.LowPart;
ft.dwHighDateTime = li.HighPart;
::FileTimeToSystemTime(&ft, st);
}
来源:https://stackoverflow.com/a/11123106/2385309
编辑:另见:https://stackoverflow.com/a/26486180/2385309您可能需要为 Epoch 时间毫秒添加/减去 11644473600000
关于c++ - 将 UNIX 纪元时间转换为 SYSTEMTIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32636309/
我有一个 SYSTEMTIME,我正在尝试从中获取包含日期和时间值的本地化字符串。 API(例如 GetDateFormat/GetTimeFormat)获取日期或时间 - 但不能同时获取两者。 是否
例如,我的代码如下。 void main() { SYSTEMTIME LocalTime_Start = { 0 }; GetLocalTime( &LocalTime
以下代码的目标是调用 Win32 函数 FileTimeToSystemTime: pub fn convert_times(s: SystemTime) -> Option { let mu
看来我无法将 SystemTime 转换为字符串。我必须使用 SystemTime,因为我需要从 std::fs::Metadata::created() 返回的值。 最佳答案 您应该使用 Chron
我正在对一个用 C++ 编写的大型解决方案进行跨平台编译,从 VS2010 到 linux 环境。 我的问题是:linux 中最接近 struct SYSTEMTIME 的等价物是什么? typede
如果提供了日期(月-日-年),是否可以使用 SYSTEMTIME 确定星期几?或者此结构仅是单向的? 如果 SYSTEMTIME 无法完成(使用 Win32),什么是最轻量级的方法来完成我要问的? 最
我有一个用 SYSTEMTIME 表示的时间值,我想从中加/减 1 小时并得到新获得的 SYSTEMTIME。我希望转换应该注意加法/减法或月份变化或 e1 年变化的日期变化。 如果有一些在 SYST
我想获得两个 SYSTEMTIME 变量之间的差异。我以前在这里看到有人问过这个问题,但他被告知将两个 SYSTEMTIME 结构都转换为 FILETIME..有没有其他方法来获得差异? SYSTEM
这个问题在这里已经有了答案: How can I get the current time in milliseconds? (7 个回答) 1年前关闭。 我正在尝试创建一个为实体分配唯一标识符的系统
在 native C++ 应用程序中的 Windows Mobile(但我猜它在 Windows 上是相同的)上,我将如何正确设置 SYSTEMTIME 结构?假设我有 int year, month
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Is there a function like asctime_s() that works for SY
在我的 C++ Windows 应用程序中,我将 SYSTEMTIME 转换为格式化字符串,如下所示: SYSTEMTIME systemTime; GetSystemTime(&sy
我想问一下是否有人有一些好的算法(或方法)来检查两个 SYSTEMTIME 变量是否有 30 天或更长时间的差异? 谢谢 最佳答案 作为MSDN page在 SYSTEMTIME 上说, It is
有没有办法确定已转换为 SystemTime 值的 DATE 数据类型的时区? 假设一个使用 COM 库的 C# 文件设置以下值: someComInterface.someDateAttribute
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
我正在使用 Windows,我只是运行了命令: C:\Sites\cmply>gem install SystemTimer -v '1.2.3' 我收到了这个错误: Temporarily enha
我想检查很多文件的 LastWriteTimes 是否与系统昨天的日期相同。我的问题是如何以 SYSTEMTIME 格式设置昨天的日期时间。以下是我的代码。 bool checkLastWri
我想从 COleDateTime 对象中获取年份和月份,并且希望它尽可能快。我有 2 个选择; COleDateTime my_date_time; int year = my_date_time.G
我想获取相对于 MFC 中当前系统时间的 UTC 或 GMT 时间。我已经尝试使用 CTime 的 GetGmtTm(),如下所示 struct tm* osTime=NULL; tm t1 =
我不想使用 WMI 获取上次启动时间,而是想使用 ::GetSystemTime() 和 ::GetTickCount64 来计算它。但是一旦达到毫秒,我就不知道如何返回到 FILETIME 对象。
我是一名优秀的程序员,十分优秀!