C# DateTimeCompact 和 TimeCompact

发布于 2025-01-12 21:59:30 字数 192 浏览 1 评论 0原文

有人告诉什么是 DateTimeCompact 和 TimeCompact,它是如何计算的? 到目前为止,我知道每个都是 2 字节值,可解释为日期和时间,

这里是一个示例值:

0x40410001 = 01.02.2022 00:00:02
0x493ebf7d = 30.09.2026 23:59:58

Someone tell what is DateTimeCompact and TimeCompact, how its calculated?
So far I know each is 2 Byte value interpretable as Date and Time

Here an Example value:

0x40410001 = 01.02.2022 00:00:02
0x493ebf7d = 30.09.2026 23:59:58

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宫墨修音 2025-01-19 21:59:30

我已经发现了,但不知道 DateTimeCompact 和 TimeCompact 是否是用于此目的的特殊类型,并且仅与此规范相关,但它发现很有趣,所以我想分享一些知识:-)

DateTimeCompact 是 2 字节 UShort值,可以用 16 位解释如下:

F E D C B A 9 8 7 6 5 4 3 2 1 0
y y y y y y y m m m m d d d d d

所以问题中的值:

0x4041 0001 -> 0x4041 DateTimeCompact -> 0x0001 TimeCompact
0x493e bf7d -> 0x493e DateTimeCompact -> 0xbf7d TimeCompcat

0x4041

0b0100 0000 0100 0001
  yyyy yyym mmmd dddd

Year: 0100000 -> 32 
Month: 0010 -> 2
Day: 00001 -> 1

年份是从 1990 年开始计算的,所以
1990年+32=2022年-> 2022.02.01

TimeCompact:

F E D C B A 9 8 7 6 5 4 3 2 1 0
h h h h h m m m m m m s s s s s

Time: 0001
0b0000000000000001 
  hhhhhmmmmmmsssss
Hourse: 0
Minutes: 0
Seconds: 1

但是秒计算为2秒
最后:2022.02.01 00:00:02

I´ve found out, but do not know whether the DateTimeCompact and TimeCompact is a special type for this purpose and only is relevant for this one specification but its find of interesting so I want to share some knowledge :-)

DateTimeCompact is 2 Byte UShort value and can be interpreted in 16 Bits as followed:

F E D C B A 9 8 7 6 5 4 3 2 1 0
y y y y y y y m m m m d d d d d

So the value from the queston:

0x4041 0001 -> 0x4041 DateTimeCompact -> 0x0001 TimeCompact
0x493e bf7d -> 0x493e DateTimeCompact -> 0xbf7d TimeCompcat

0x4041

0b0100 0000 0100 0001
  yyyy yyym mmmd dddd

Year: 0100000 -> 32 
Month: 0010 -> 2
Day: 00001 -> 1

The year is calculated from 1990 so
Year 1990 + 32 = 2022 -> 2022.02.01

TimeCompact:

F E D C B A 9 8 7 6 5 4 3 2 1 0
h h h h h m m m m m m s s s s s

Time: 0001
0b0000000000000001 
  hhhhhmmmmmmsssss
Hourse: 0
Minutes: 0
Seconds: 1

But seconds are calculated as 2 seconds
So final: 2022.02.01 00:00:02

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文