2013-01-03 4 views
1

c를/asp.net에서 데이터를 얻을 않는 경우곳 날짜는 #

DateTime.Now; 

은 데이터를 얻을 수 있습니까?

내 데스크톱에서 데이터를 가져 옵니까? 실제로는 디버깅 중에 관찰하고 있습니다. 바탕 화면 시간을 한 시간 뒤로 변경했고 datetime.now에서 정확한 날짜/시간을 알려주었습니다.

내 실제 질문은 프로젝트를 배포 할 때 여전히 적용됩니까? 내 사이트가 사용자 PC에서 시간을 가져 오나요?

내가 x 분 후에 처리하려는 세션 변수를 사용하기 때문에이 질문의 이유가 있습니다. 그리고 datetime.now가 사용자 컴퓨터에서 시간을 얻으면 일종의 보안 문제가됩니다.

미리 답변 해 주셔서 감사합니다.

+0

어디서나 응용 프로그램을 배포하면 해당 위치의 날짜와 시간이 표시됩니다. – MMK

+2

"이 컴퓨터에서 현재 날짜와 시간으로 설정된 DateTime 개체를 가져옵니다. 로컬 시간으로 표시됩니다." http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx –

+0

그래서, 기본적으로, 그것은 프로젝트를 배포 할 것입니다 서버에서 datetime 얻을 것인가? – Mana

답변

6

ASP.NET이 서버에서 실행됩니다. 서버에서 시간을 받고 있습니다. 개발 중에는 서버가 종종 이 "사용자의 PC"인이긴하지만 이는 우연의 일치입니다.

+0

사실, 시간은 어디서나 모두에게 동일합니다 (UTC 사용시); – leppie

+3

@leppie : 현지 시간 인 'DateTime.Now'가 아닙니다. 'DateTime.UtcNow'는 모든 시계가 동기화되었다고 가정 할 것입니다 ... –

+0

oki, 나는 당신의 빠른 답장을 보게됩니다. – Mana

3

귀하의 분석은 옳고 그름 모두입니다. DateTime.Now는 코드가 실행되는 컴퓨터에서 시간을 가져옵니다. ASP 스크립트에이 조각이 있다고 가정합니다. ASP 스크립트를 배포 할 때 웹 서버에서 실행 중이라고 가정합니다. 따라서 시간은 사용자의 PC가 아닌 웹 서버의 시간입니다.

사용자 PC에서 클라이언트 측 스크립트를 통해 시간을 얻을 수 있습니다. JS와 같습니다.

1

서버 날짜를 올바르게 유지해야합니다. 코드가 서버에서 실행되면 올바른 시간을 계속 얻을 수 있습니다. 클라이언트 시스템 날짜를 변경해도 서버 시간에는 영향을주지 않습니다. 모든 코드 숨김 (서버 측 코드)이 정확한 시간을 갖습니다.

1

asp.net 또는 C# DateTime.Now는 응용 프로그램이 실행되는 서버의 시간을 표시합니다.