2012-07-06 4 views
4

저는 서버에 날짜 저장을 위해 UTC를 사용하는 클라우드 기반 프로그램을 작성 중이며 왕복으로 다시 변환합니다. 문제는 클라우드의 인스턴스가 결과를 가져 오는 브라우저의 현지화 설정에 따라 JsonResult 날짜/시간 값을 자동 변환하는 것입니다.자동 서식 지정에서 JsonResult 방지

두 단계의 서버 측 코드가 올바른 데이터를 반환하는지 확인하기 위해 여러 단계를 거쳤습니다. 모든 인스턴스에 적용되며 내 페이지의 자바 스크립트 코드도 변경되지 않습니다. 필자의 Javascript 날짜 형식 지정), Firebug를 사용하여 변경된 정확한 지점을 확인했습니다. 내 페이지가 JsonResult 메소드에서 Json Result를 수신 할 때입니다. 내가 말했듯이, 나는 페이지에 전송되기 전에 값을 디버깅했으며, 적절하다. 그리고 나의 응답에 따라 브라우저 위치에 따라 수정된다. ...

누구도 비슷한 문제가 있었습니까?

값이 반환 17:00

될해야 날짜 (1341792000000) 2012년 7월 8일 : 날짜 (1341817200000) (2012년 7월 9일 오전 12시)

감사

+0

현지 시간이나 형식으로 자동 변환 하시겠습니까? 그리고 원하지 않는 동작은 서버에서 보낸 날짜를 가져올 때 또는 클라이언트로 다시 보낼 때 발생합니다. 나는 또한 azure 태그를 제거하려고합니다. –

+0

이것은 Azure로 태그를 지정한 이유입니다. Azure 클라우드 기반 문제입니다. 문제는 JsonResult를 반환 할 때 발생합니다 ... 서버에있는 모든 값은 클라이언트에 보내기 전에 정확합니다 ...하지만 JsonResult가 내 객체를 반환하면 서버의 브라우저 로컬 차이를 기반으로 수정 된 datetime을 포함합니다. –

+0

페이지를로드하는 브라우저가 어디에 상주하는지에 관계없이 특정 시간대에 대해 형식화해야하는 날짜가 있습니다. 즉 해결해야하는 근본적인 문제입니다. –

답변

1

결국 내 응용 프로그램을 수정하여 적절한 결과를 얻었습니다. 이것이 일어날 수 있도록 많은 일을했습니다 ... 우선, timezone.JS를 구현하여 응용 프로그램 내에서 사용될 시간대 목록을 얻었고 jstz를 사용하여 페이지를로드하는 브라우저의 현재 시간대를 가져 왔습니다. 다음으로, (mvc의 경우) timezoneJS에로드 할 시간대에 액세스하는 파일 get 메소드를 만들어야합니다.

다음으로 시간대를 저장할 때 유형으로 pst를 지정한 다음 왕복으로 utc로 다시 변환하여 인터페이스를 업데이트합니다. 내 JSON 날짜의 형식에

, 나는 timezoneJS 방법을 실행하고 jstz에서 시간대 이름을 얻고, 같은 같은 새로운 날짜 값 설정이 클라우드 프로젝트에 있습니다

var timezone = jstz.determine(); 
timezoneJS.timezone.zoneFileBasePath = '/Item/GetTz'; // get file method 
var dt = new timezoneJS.Date(parseInt(jsonDate.substr(6), timezone.name())); // strips out date from json date 
dt.setTimezone('America/Los_Angeles'); 

가 실행 될 수를 시간대에 상관없이 모든 브라우저에 표시되며 사용자가 시간대에 민감한 데이터를 기본적으로보고 구성 할 수 있도록하며 사용자가 구성 가능한 데이터베이스 값의 시작/끝 날짜를 볼 수 있도록합니다.

0

를 어쩌면

+0

불행히도, 아니, 'local', 'unspecified'및 'utc'로 지정하기 위해이 방법을 사용해 보았습니다. 세 가지 모두 동일한 결과를 산출합니다. –

0

http://msdn.microsoft.com/en-us/library/system.datetime.specifykind.aspx을 사용하면, 함께

date.toLocaleString() 

Alternat을 시도 했 활발하게 Date 개체를 새로 만들 수 있습니다. Date.setUTC

+0

예, 시간대 밖에서 서식이 지정된 pst 형식이 아닌 DT의 로컬 버전을 반환합니다 ... –

+0

MM/DD/YYYY XX : YY AM/PM 형식으로 하시겠습니까? 현재 형식은 무엇입니까? – CodeMad