例如:string timestr = "19-06-24 19:09:16.776"; 结果应为:f8 ba 1f 8a 19 4f e5 40
我读对的读 数据是
解析出来的时间
我现在需要反过来处理 ? 你这个程序解析出来的对不上 ,求救!
可以参考
string timeString = "2023-06-06 08:39:07.123";
DateTime dateTime = DateTime.ParseExact(timeString, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
byte[] timeBytes = BitConverter.GetBytes(dateTime.ToBinary());
时间字符串解析为DateTime
对象,然后将该对象转换为8个字节的二进制数据,并将结果存储在timeBytes
数组中。DateTime.ToBinary()
方法返回的是一个长整型数值,使用BitConverter.GetBytes()
方法将其转换为字节数组。
时间
string timeString = "2023-06-06 08:39:07.123";
DateTime dateTime = DateTime.ParseExact(timeString, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
byte[] timeBytes = BitConverter.GetBytes(dateTime.ToBinary()) 转byte
类似这样
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
C#时间字符串转换示例
string timestr = "19-06-24 19:09:16.776"; // 待转换的时间字符串
DateTime dt = DateTime.ParseExact(timestr, "yy-MM-dd HH:mm:ss.fff", CultureInfo.CurrentCulture); // 将时间字符串转换为DateTime类型
byte[] timeBytes = BitConverter.GetBytes(dt.Ticks); // 将DateTime转换为byte[8]
Array.Reverse(timeBytes); // 反转字节数组,以符合所给出的结果
string byteStr = BitConverter.ToString(timeBytes).Replace("-", " "); // 转为byte串
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
可以通过以下代码将时间字符串转换成byte[8]:
string timestr = "19-06-24 19:09:16.776";
DateTime dt = DateTime.ParseExact(timestr, "yy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
byte[] timebytes = BitConverter.GetBytes(dt.Ticks);
// 如果需要将时间转换成大端字节序,可以反转数组
if (BitConverter.IsLittleEndian)
{
Array.Reverse(timebytes);
}
// 将结果转换成字符串形式,每个字节使用空格分隔
string result = string.Join(" ", timebytes.Select(b => b.ToString("x2")));
Console.WriteLine(result); // 输出: f8 ba 1f 8a 19 4f e5 40
在上面的代码中,我们首先使用DateTime.ParseExact方法将时间字符串timestr解析为DateTime类型。然后,我们使用BitConverter.GetBytes方法将DateTime.Ticks转换成byte[8]类型的数组timebytes。最后,我们将timebytes转换成字符串形式,并将每个字节使用空格分隔,输出结果。
需要注意的是,上面的代码默认将时间转换成小端字节序,如果需要将时间转换成大端字节序,可以在BitConverter.GetBytes方法之后,使用Array.Reverse方法反转数组。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
根据提供的要求,您需要将字符串"19-06-24 19:09:16.776"转换为十六进制形式:"f8 ba 1f 8a 19 4f e5 40"。
要完成这个转换,您需要按照以下步骤进行操作:
请注意,具体的代码实现可能因使用的编程语言而有所不同。您可以根据所选的编程语言和字符串处理方法来编写代码来完成这个转换过程。