将DateTime.Now结果转换为数组(24小时格式)

时间:2015-08-20 01:51:35

标签: c#

我正在尝试发送日期&到远程数据记录器的时间,我需要将DateTime.Now转换为字节数组。

例如,

2015 will byte[0] = 20; 
byte[1] = 15;
byte[..] = 23 (11 pm).. 
等等等等。

我正在使用C#,Visual Studio 2010。

2 个答案:

答案 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