我正在尝试发送日期&到远程数据记录器的时间,我需要将DateTime.Now
转换为字节数组。
例如,
2015 will byte[0] = 20;
byte[1] = 15;
byte[..] = 23 (11 pm)..
等等等等。
我正在使用C#,Visual Studio 2010。
答案 0 :(得分:1)
我认为这就是你所追求的目标:
DateTime now = DateTime.UtcNow;
string logString = now.ToString("yyyyMMddHHmmss");
byte[] logEntry;
int elements = logString.Length / 2;
logEntry = new byte[elements];
for (int i = 0; i < elements; i++)
{
logEntry[i] = Convert.ToByte(logString.Substring(i*2,2));
}
Console.WriteLine(logString);
Console.WriteLine();
for (int i = 0; i < elements; i++)
{
Console.WriteLine("{0}: {1:00}", i, logEntry[i]);
}
示例输出:
20150820073306
0: 20
1: 15
2: 08
3: 20
4: 07
5: 33
6: 06
答案 1 :(得分:-1)
对您的用例不太确定。如果我可以将以下语句与您的查询分开,我的解决方案对您有用。
我需要将Date Time.Now转换为Byte数组
DateTime dt = DateTime.Now;
Console.WriteLine(dt);
// Covert to OA Date
double oadate = dt.ToOADate();
Console.WriteLine(oadate);
// Convert to byte array.
byte[] datebytes = BitConverter.GetBytes(oadate);
可以使用几行代码将其转换回DateTime
。
double retvalue = BitConverter.ToDouble(datebytes,0);
Console.WriteLine(DateTime.FromOADate(retvalue));
示例code。