문제

Intel 프로세서가있는 32 비트 OS에서 DateTime EG 2/17/2009 12:00:00 AM에 주목하십시오. MM/DD // YYYY

AMD 프로세서가있는 64 비트 OS에서 DateTime EG 17-02-2009 00:00:00

이제 첫 번째 형식을 구문 분석하려고하면 두 번째 플랫폼에서 오류가 발생합니다. 즉, dateTime.parse ( "2/17/2009 12:00:00 AM") - 오류를 던져 - 변환 할 수 없습니다. 반면, 동일한 플랫폼에서 datetime.parse ( "17/2/2009 12:00:00 AM")가 작동합니다! 즉, DD/MM은 괜찮다는 것을 의미합니다. MM/DD는 그렇지 않습니다.

원인이 무엇입니까? 64 비트 OS? 프로세서?

문제를 어떻게 제거합니까?

도움이 되었습니까?

해결책

DateTimes 자체에는 형식이 없습니다. 당신은 그것들을 구문 분석하거나 문자열로 포맷합니다. (숫자와 같습니다. 정수는 16 진수 또는 소수점에 저장되지 않고 단지 정수입니다. 16 진수 또는 소수점으로 포맷 할 수 있지만 값 자체는 숫자 일뿐입니다.)

형식은 운영 체제의 문화 (또는 더 정확하게는 스레드의 문화에 따라 다릅니다. 이는 일반적으로 운영 체제와 동일합니다).

개인적으로 나는 실제로 문자열을 사용자에게 표시하고 문화가 이미 적절하다는 것을 알지 않는 한, 구문 분석 또는 형식에 사용하는 형식을 명시 적으로 설정하고 싶습니다.

다른 팁

"지역 및 언어"제어판에서 "날짜 및 시간 형식"을 확인하십시오.

또한 DateTime이 특정 형식을 생성하려는 경우 Plain Tostring ()을 호출하지 말고 원하는 형식을 나타내는 매개 변수를 전달하십시오. 마찬가지로, 구문 분석을 요청하는 날짜의 형식을 알고 있다면 tryparseexact ()에게 전화하여 제공하는 형식을 알려주십시오.

MSDN도 참조하십시오 표준 날짜 및 시간 형식 문자열

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top