2017-11-01 4 views
0

YYMMDDHHmm 형식으로 현재 날짜와 시간으로 바이트 배열을 채우려고합니다. 그러나 DateTime.Now.Day 또는 DateTime.Now.Month 또는 이러한 메서드 중 하나는 int를 반환하므로 결과적으로 "day"값이 10보다 작은 경우 (예 : 내 코드에서 null 참조 예외가 발생합니다. 참조 할 두 번째 바이트가되어야 함).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]; 

이 아마 멍청한 짓을 할거야,하지만 아무도 경우의 한 무리를 사용하지 않고 바이트 배열이 내부 올바른 값을 얻을하는 방법에 어떤 생각을 가지고 수행한다?

예 : 11/01/17 08:46 -> [49] [55] [49] [48] [56] [52] [54] 부호화)

+2

넣어 fomrat : ToString ("yyMMddhhmm") – jdweng

+2

사이드 노트 : 나는 강하게 한 번'DateTime.Now'를 호출하고 지역 변수에 결과를 저장하는 것이 좋을 것. 코드가 작업 도중에 * 중 하나 이상 (또는 그 이상)의 구성 요소가 새로운 값 *으로 이동하면 어떻게 될지 고려하십시오. –

+0

@ jdweng는 매력처럼 일했습니다! 대단히 감사합니다. – amorimph

답변

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

보십시오

Encoding.ASCII.GetBytes (및 String.format ("{0} S"DateTime.Now));

또는 그와 비슷한 형식은 다음과 같습니다. "2008-03-09T16 : 05 : 07"그래서 약간 조정하면 스타일에 맞게 수정해야합니다. ToString 메서드에

+0

"String.Format ("{0 : dd}/{0 : MM}/{0 : yyyy} {0 : hh} : {0 : mm} "" 원하는 형식. – user8867630