时间格式问题:整数值与时间之比

Time Format Problem integer value to time

提问人:Dursun ICCAN 提问时间:6/28/2023 更新时间:6/28/2023 访问量:43

问:

我不明白这样的转换时间问题。

287779394 = 17:39:42 238172446 = 14:50:57 152830465 = 09:28:02

这是什么格式?如何将时间转换为整数值? 我正在使用 C# visual studio Asp MVC 项目?

C# asp.net ASP.NET-MVC 日期时间

评论

0赞 Flydog57 6/28/2023
您将需要给我们更多提示。它不是“Unix时间戳”。比如一个Unix时间戳解析为,对时间进行编码的方式有很多种。尝试做一些整数除法(和模数运算)(乘以 24、乘以 60、乘以 60)看看你得到了什么。287779394Tue Feb 13 1979 18:43:14 UTC

答:

1赞 Matthew Watson 6/28/2023 #1

看起来它是小时、分钟和秒各一个字节,另一个字节值含义未知(可能是 1/100 秒?

var bytes = BitConverter.GetBytes(287779394);

Console.WriteLine($"Unknown: {bytes[0]}"); // 66
Console.WriteLine($"Seconds: {bytes[1]}"); // 42
Console.WriteLine($"Minutes: {bytes[2]}"); // 39
Console.WriteLine($"Hours:   {bytes[3]}"); // 17

如果这是正确的,那么将 转换为时间的有效方法是:int

int value = 287779394;

int unknown = (value >>  0) & 0xff;
int seconds = (value >>  8) & 0xff;
int minutes = (value >> 16) & 0xff;
int hours   = (value >> 24) & 0xff;

Console.WriteLine($"Time = {hours}:{minutes}:{seconds}, extra = {unknown}");