バイト配列に現在の日付と時刻をYYMMDDHHmmの形式で入力しようとしています。 しかし、DateTime.Now.DayまたはDateTime.Now.Monthまたはこれらのメソッドのいずれかがintを返します。これは最終的に私のコードでnull参照例外を発生させます(たとえば、 "day"の値が10より小さい場合、参照する2番目のバイト)。ASCIIエンコーディングでDateTime.Nowを使用してバイト配列を設定する
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];
これはおそらく愚かなものになるつもりですが、誰もがあればのの束を使用せずに、バイト配列内のこの右の値を取得する方法のいずれかのアイデアを持っているのでしょうか? 012] [01] [17] [18] [19] [22] [22] [23] [22] [23]符号化)
プットfomrat:ToStringメソッド(「YYMMDDHHMM」) – jdweng
サイドノート:私は強くあなたが一度 'DateTime.Now'を呼び出し、ローカル変数に結果を格納することをお勧めしたいです。コードが作業の途中にある間に、それらのコンポーネントの1つ(またはそれ以上)が新しい値*に移動するとどうなるか考えてみてください。 –
@jdwengは魅力的に働いた!おかげでたくさんの友人 – amorimph