使用带ASCII编码的DateTime.Now填充字节数组

时间:2017-11-01 10:48:12

标签: c# arrays datetime encoding ascii

我尝试使用当前日期和时间填充字节数组,格式如下:YYMMDDHHmm。 但是,DateTime.Now.Day或DateTime.Now.Month或这些方法中的任何一个返回int,最终导致我的代码中出现空引用异常(例如,当" day"值小于10时,不会引用第二个字节)。

        DATETIME[0] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Year.ToString())[2];
        DATETIME[1] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Year.ToString())[3];
        DATETIME[2] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Month.ToString())[0];
        DATETIME[3] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Month.ToString())[1];
        DATETIME[4] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Day.ToString())[0];
        DATETIME[5] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Day.ToString())[1];
        DATETIME[6] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Hour.ToString())[0];
        DATETIME[7] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Hour.ToString())[1];
        DATETIME[8] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Minute.ToString())[0];
        DATETIME[9] = System.Text.Encoding.ASCII.GetBytes(DateTime.Now.Minute.ToString())[1];

这可能会有点愚蠢,但是有没有人知道如何在字节数组中获得正确的值而不使用一堆if?#/ p>

例如:11/01/17 08:46 - > [49] [55] [49] [49] [48] [49] [48] [56] [52] [54](ASCII编码)

2 个答案:

答案 0 :(得分:0)

尝试:

  

Encoding.ASCII.GetBytes(的String.Format(" {0:S}",DateTime.Now));

或类似的东西,该格式给出:" 2008-03-09T16:05:07"所以稍微调整就可以解决你的风格。

答案 1 :(得分:0)

   System.Text.Encoding.ASCII.GetBytes( DateTime.Now.ToString("yyMMddhhmm"));