c - 如何将字符串 UTC 时间格式 YYYYMMDDHHMMSS.MMMMMMSUTC 的时间转换为时间戳格式,将 DDDDDDDDHHMMSS.MMMMMM:000 转换为 C 中的间隔格式?
问题描述
通过运行命令
wmic OS Get LastBootUpTime
我以字符串 UTC 时间格式获取时间YYYYMMDDHHMMSS.MMMMMMSUTC
。如果已知字符串是时间戳,则将其转换为时间戳格式:
typedef struct _Timestamp
{
unsigned int year;
unsigned int month;
unsigned int day;
unsigned int hour;
unsigned int minute;
unsigned int second;
unsigned int microseconds;
signed int utc;
}
Timestamp;
例如:时间:20210324111750.500000+330
如果isTimestamp = true。
Timestamp.year = 2021
Timestamp.month = 03
Timestamp.day = 24
Timestamp.hour = 11
Timestamp.minute = 17
Timestamp.second = 50
Timestamp.microseconds = 500000
Timestamp.utc = +330
如果已知在区间内,则将字符串从DDDDDDDDHHMMSS.MMMMMM:000
格式转换为区间格式:
typedef struct _Interval
{
unsigned int days;
unsigned int hours;
unsigned int minutes;
unsigned int seconds;
unsigned int microseconds;
unsigned int __padding1;
unsigned int __padding2;
unsigned int __padding3;
}
Interval;
例如:时间:00000324111750.500000:000
如果isTimestamp = false。
Interval.days = 324
Interval.hours = 11
Interval.minutes = 17
Interval.seconds = 50
Interval.microseconds = 500000
Interval.__padding1 = 0
Interval.__padding2 = 0
Interval.__padding3 = 0
手动解析字符串似乎是一个很长的方法。
有人可以建议 C 内置函数来实现这一点。或者如果有现成的函数可以转换char *
为上述时间格式。
解决方案
推荐阅读
- css - CSS 中的 xx-large 和 large 有什么区别?
- mirror - 我无法让“spack mirror add”工作
- sql - 获取分组中最新日期的行
- android - 为什么 EGL 上下文只与一个线程相关
- python - 遍历一个字符串,需要该字符串的索引
- elasticsearch - Elasticsearch Opendistro 安全性——将用户添加到 readall 角色
- google-maps - 如何在谷歌地图中绘制一个位于道路图层下方的形状?
- html - 如何在网站上实时显示对 textarea 的更改
- javascript - Javascript:使用 Promise 链接 axios 调用
- c# - 将 System.Drawing.Icon 转换为 SkiaSharp.SKBitmap