2011-10-10 3 views
0

내 시스템에서 날짜 형식은 YYY-MM-DD 형식으로 설정됩니다. 따라서 DateTime.Now을 호출하면 내 C# 응용 프로그램이이 형식을 취하게됩니다.응용 프로그램이 Windows 서비스로 실행될 때의 날짜 시간 형식

이제 설치 유틸리티 명령을 사용하여 서비스로 설치된 내 응용 프로그램에 있습니다.

서비스를 실행하면 날짜 형식이 dd/mm/yyy이됩니다. 하지만 형식을 데이터베이스에 yyy-MM-DD 형식으로 저장하고 싶습니다.

내 코드를 변경해야하는지 시스템에서이 형식을 설정할 수 있는지 여부.

이미 국가 별 설정이 yyy-mm-dd 형식으로되어 있기 때문에.

이 문제는 응용 프로그램을 서비스로 설치할 때만 발생합니다.

도와주세요. 미리 감사드립니다.

+0

당신은'yyy'가 아니라'yyy'를 의미합니까? – abatishchev

+0

@abatishchev 이것은 우리 시대에도 동일합니다 : msdn (http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx)에 따르면 :'yyy' = _ 세 자리 숫자의 연도. 연도가 100보다 작 으면 올해는 선행 0으로 표시됩니다. _ – Otiel

+0

@Leito : 정보를 제공해 주셔서 감사합니다! – abatishchev

답변

1

를 사용하여 날짜 시간 형식 :

DateTime.Now.ToString("yyy-MM-dd"); 

당신을 얻을 것이다 :

yyy :같은 년을 (). 2011
MM : 날 수 날짜 형식은 다음과 같이 설정되어 내 시스템에서

3

먼저 질문을 드리겠습니다. 왜 데이터베이스에 날짜를 문자열로 저장합니까? 대신 날짜 값으로 저장하는 것이 좋습니다. 이렇게하면 데이터를 저장할 때 서식 문제가 없어집니다.

특정 형식으로 저장해야하는 경우 두 번째 제안으로, 나는 오히려 시스템 설정에 의존하지 않고, 명시 적으로 문자열을 포맷해야 할 것 :

var dateAsString = theDate.ToString("yyyy-MM-dd"); 
+0

을 사용하고 다음과 같은 세계화 기능을 사용하십시오. http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx –

+0

데이터베이스에 _date 값으로 날짜 저장시 +1. – Otiel

1

(한 자리가 앞에 0으로 포맷) : 달의 수는
dd가 (한 자리는 앞에 0으로 포맷) YYY-MM-DD 형식

국가 별 설정에서?

현재 사용자의 형식 만 설정합니다. 따라서 서비스 프로세스가 거의 항상 수행하는 다른 사용자로 실행되는 프로세스에는 아무런 영향을 미치지 않습니다.

관련 문제