etc./StackOverFlow

Microsoft JSON 날짜 형식은 어떻게 지정합니까?

청렴결백한 만능 재주꾼 2021. 12. 7. 00:50
반응형

질문자 :Community Wiki


jQuery를 사용 하여 Ajax에 대한 첫 번째 균열을 만들고 있습니다. 내 데이터를 내 페이지로 가져오고 있지만 Date 데이터 유형에 대해 반환되는 JSON 데이터에 문제가 있습니다. 기본적으로 다음과 같은 문자열이 반환됩니다.

 /Date(1224043200000)/

JSON을 처음 접하는 사람에게서 - 이것을 짧은 날짜 형식으로 어떻게 포맷합니까? 이것은 jQuery 코드의 어딘가에서 처리되어야 합니까? $.datepicker.formatDate() 를 사용하여 jQuery.UI.datepicker 플러그인을 시도했지만 성공하지 못했습니다.

참고: 여기에 답변 조합을 사용하여 생각해낸 솔루션이 있습니다.

 function getMismatch(id) { $.getJSON("Main.aspx?Callback=GetMismatch", { MismatchId: id }, function (result) { $("#AuthMerchId").text(result.AuthorizationMerchantId); $("#SttlMerchId").text(result.SettlementMerchantId); $("#CreateDate").text(formatJSONDate(Date(result.AppendDts))); $("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts))); $("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts))); $("#LastUpdatedBy").text(result.LastUpdateNt); $("#ProcessIn").text(result.ProcessIn); } ); return false; } function formatJSONDate(jsonDate) { var newDate = dateFormat(jsonDate, "mm/dd/yyyy"); return newDate; }

이 솔루션은 콜백 메서드에서 내 개체를 가져오고 날짜 형식 라이브러리를 사용하여 페이지에 날짜를 올바르게 표시했습니다.



eval() 은 필요하지 않습니다. 이것은 잘 작동합니다:

 var date = new Date(parseInt(jsonDate.substr(6)));

substr() 함수는 /Date( 부분을 제거하고 parseInt() 함수는 정수를 가져오고 끝에 )/ 결과 숫자는 Date 생성자에 전달됩니다.


parseInt 대한 두 번째 인수)를 생략했습니다. 아래 내 의견을 참조하십시오.

또한 Rory의 의견에 전적으로 동의합니다. ISO-8601 날짜가 이 이전 형식보다 선호되므로 일반적으로 이 형식을 새로운 개발에 사용해서는 안 됩니다.

ISO-8601 형식의 JSON 날짜의 경우 문자열을 Date 생성자에 전달하기만 하면 됩니다.

 var date = new Date(jsonDate); //no ugly parsing needed; full timezone support

Community Wiki

이것을 사용하여 JSON에서 날짜를 가져올 수 있습니다.

 var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));

그런 다음 JavaScript 날짜 형식 스크립트(축소 및 gzip으로 압축된 경우 1.2KB)를 사용하여 원하는 대로 표시할 수 있습니다.


Community Wiki

Newtonsoft Json.NET을 사용하는 경우 IE8, Firefox 3.5 및 Json.NET에서 기본 JSON을 통해 이를 수행하는 방법을 읽으십시오.

또한 Json.NET에서 작성한 날짜 형식 변경에 대한 문서도 유용합니다. Serializing Dates with Json.NET

너무 게으른 사람들을 위해 빠른 단계가 있습니다. JSON에는 느슨한 DateTime 구현이 IsoDateTimeConverter() 를 사용해야 합니다. Json.NET 4.5부터 기본 날짜 형식은 ISO이므로 아래 코드는 필요하지 않습니다.

 string jsonText = JsonConvert.SerializeObject(p, new IsoDateTimeConverter());

JSON은 다음과 같이 전달됩니다.

 "fieldName": "2009-04-12T20:44:55"

마지막으로 ISO 날짜를 JavaScript 날짜로 변환하는 일부 JavaScript:

 function isoDateReviver(value) { if (typeof value === 'string') { var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)(?:([\+-])(\d{2})\:(\d{2}))?Z?$/.exec(value); if (a) { var utcMilliseconds = Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]); return new Date(utcMilliseconds); } } return value; }

나는 이것을 이렇게 사용했다

 $("<span />").text(isoDateReviver(item.fieldName).toLocaleString()).appendTo("#" + divName);

Community Wiki

원래 예:

 /Date(1224043200000)/

기본 제공 JSON 직렬화를 사용하여 WCF REST를 통해 날짜를 보낼 때 WCF에서 사용하는 형식을 반영하지 않습니다. (적어도 .NET 3.5, SP1 이상)

여기에서 답변이 도움이 되었지만 WCF JSON에서 반환된 숫자(1970년 이후)에 표준 시간대 GMT 오프셋이 추가되는 것처럼 보이므로 정규식을 약간 편집해야 합니다.

WCF 서비스에는 다음이 있습니다.

 [OperationContract] [WebInvoke( RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest )] ApptVisitLinkInfo GetCurrentLinkInfo( int appointmentsId );

ApptVisitLinkInfo는 다음과 같이 간단하게 정의됩니다.

 public class ApptVisitLinkInfo { string Field1 { get; set; } DateTime Field2 { get; set; } ... }

"Field2"가 서비스에서 Json으로 반환되는 경우 값은 다음과 같습니다.

 /Date(1224043200000-0600)/

값의 일부로 포함된 시간대 오프셋을 확인하십시오.

수정된 정규식:

 /\/Date\((.*?)\)\//gi

그것은 약간 더 열심이며 첫 번째 숫자뿐만 아니라 괄호 사이의 모든 것을 잡습니다. 결과 시간 sinze 1970과 시간대 오프셋을 모두 eval에 입력하여 날짜 개체를 얻을 수 있습니다.

바꾸기에 대한 결과 JavaScript 행은 다음과 같습니다.

 replace(/\/Date\((.*?)\)\//gi, "new Date($1)");

Community Wiki

$.parseJSON() 사용하여 날짜 변환 자동화

게시물에 대한 답변은 수동 날짜 변환을 JavaScript 날짜로 제공합니다. jQuery의 $.parseJSON() 약간 확장하여 사용자가 지시하면 날짜를 자동으로 구문 분석할 수 있습니다. 브라우저(및 json2.js와 같은 라이브러리)의 기본 JSON 함수에서 지원하는 ASP.NET 형식 날짜( /Date(12348721342)/ ) 및 ISO 형식 날짜( 2010-01-01T12.34.56.789Z

어쨌든. 날짜 변환 코드를 계속해서 반복하고 싶지 않다면 이 블로그 게시물 을 읽고 삶을 조금 더 쉽게 만들어줄 코드를 얻는 것이 좋습니다.


Community Wiki

데모를 확인하려면 여기를 클릭하십시오

자바스크립트/제이쿼리

 var = MyDate_String_Value = "/Date(1224043200000)/" var value = new Date ( parseInt(MyDate_String_Value.replace(/(^.*\()|([+-].*$)/g, '')) ); var dat = value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear();

결과 - "2008년 10월 15일"


Community Wiki

자바스크립트로 말하면

 var thedate = new Date(1224043200000); alert(thedate);

당신은 그것이 정확한 날짜임을 알게 될 것이고, 당신은 그것을 어떤 프레임워크와 함께 JavaScript 코드의 어느 곳에서나 사용할 수 있습니다.


Community Wiki

업데이트됨

/Date(msecs)/ 과 원래 여기에서 질문한 것과 같은 JSON.NET을 포함한 대부분의 JSON 날짜 형식(예: 2014-06-22T00:00:00.0 )을 모두 처리해야 하는 내부 UI 라이브러리가 있습니다. 2014-06-22T00:00:00.0 . 또한 소수점 이하 3자리 외에는 대처할 수 없는 oldIE의 무능력에 대처해야 합니다 .

먼저 어떤 종류의 날짜를 사용하는지 감지하고 이를 일반 JavaScript Date 객체로 구문 분석한 다음 형식을 지정합니다.

1) Microsoft 날짜 형식 감지

 // Handling of Microsoft AJAX Dates, formatted like '/Date(01238329348239)/' function looksLikeMSDate(s) { return /^\/Date\(/.test(s); }

2) ISO 날짜 형식 감지

 var isoDateRegex = /^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(\.\d\d?\d?)?([\+-]\d\d:\d\d|Z)?$/; function looksLikeIsoDate(s) { return isoDateRegex.test(s); }

3) MS 날짜 형식을 구문 분석합니다.

 function parseMSDate(s) { // Jump forward past the /Date(, parseInt handles the rest return new Date(parseInt(s.substr(6))); }

4) ISO 날짜 형식을 구문 분석합니다.

우리는 최소한 표준 ISO 날짜 또는 항상 3밀리초 자리를 갖도록 수정된 ISO 날짜를 처리할 수 있는 방법이 있습니다( 위 참조 ). 따라서 코드는 환경에 따라 다릅니다.

4a) 표준 ISO 날짜 형식을 구문 분석하고 oldIE의 문제에 대처합니다.

 function parseIsoDate(s) { var m = isoDateRegex.exec(s); // Is this UTC, offset, or undefined? Treat undefined as UTC. if (m.length == 7 || // Just the ym-dTh:m:s, no ms, no tz offset - assume UTC (m.length > 7 && ( !m[7] || // Array came back length 9 with undefined for 7 and 8 m[7].charAt(0) != '.' || // ms portion, no tz offset, or no ms portion, Z !m[8] || // ms portion, no tz offset m[8] == 'Z'))) { // ms portion and Z // JavaScript's weirdo date handling expects just the months to be 0-based, as in 0-11, not 1-12 - the rest are as you expect in dates. var d = new Date(Date.UTC(m[1], m[2]-1, m[3], m[4], m[5], m[6])); } else { // local var d = new Date(m[1], m[2]-1, m[3], m[4], m[5], m[6]); } return d; }

4b) 고정 소수점 이하 3밀리초로 ISO 형식을 구문 분석합니다. 훨씬 쉽습니다.

 function parseIsoDate(s) { return new Date(s); }

5) 포맷:

 function hasTime(d) { return !!(d.getUTCHours() || d.getUTCMinutes() || d.getUTCSeconds()); } function zeroFill(n) { if ((n + '').length == 1) return '0' + n; return n; } function formatDate(d) { if (hasTime(d)) { var s = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear(); s += ' ' + d.getHours() + ':' + zeroFill(d.getMinutes()) + ':' + zeroFill(d.getSeconds()); } else { var s = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear(); } return s; }

6) 모든 것을 하나로 묶으십시오.

 function parseDate(s) { var d; if (looksLikeMSDate(s)) d = parseMSDate(s); else if (looksLikeIsoDate(s)) d = parseIsoDate(s); else return null; return formatDate(d); }

아래의 오래된 답변은 이 날짜 형식을 jQuery의 자체 JSON 구문 분석에 묶는 데 유용하므로 문자열 대신 Date 객체를 얻거나 여전히 jQuery <1.5에 갇혀 있습니다.

이전 답변

ASP.NET MVC와 함께 jQuery 1.4의 Ajax 함수를 사용하는 경우 다음을 사용하여 모든 DateTime 속성을 Date 객체로 전환할 수 있습니다.

 // Once jQuery.parseJSON = function(d) {return eval('(' + d + ')');}; $.ajax({ ... dataFilter: function(d) { return d.replace(/"\\\/(Date\(-?\d+\))\\\/"/g, 'new $1'); }, ... });

jQuery 1.5에서는 Ajax 호출에서 변환기 옵션을 사용하여 parseJSON 메서드를 전역적으로 재정의하는 것을 피할 수 있습니다.

http://api.jquery.com/jQuery.ajax/

불행히도 Dates를 전역적으로 제자리에서 구문 분석하려면 이전 평가 경로로 전환해야 합니다. 그렇지 않으면 구문 분석 후 사례별로 더 많이 변환해야 합니다.


Community Wiki

JSON 에는 기본 제공 날짜 유형이 없습니다. 이것은 어떤 에포크의 초/밀리초 수처럼 보입니다. 에포크를 안다면 적절한 시간을 추가하여 날짜를 생성할 수 있습니다.


Community Wiki

또한 이 문제에 대한 해결책을 찾아야 했고 결국 이 날짜 형식 등을 구문 분석할 수 있는 멋진 라이브러리인 moment.js를 발견했습니다.

 var d = moment(yourdatestring)

그것은 나를 위해 약간의 두통을 덜어 주었으므로 나는 그것을 당신과 공유 할 것이라고 생각했습니다. :)
여기에서 더 많은 정보를 찾을 수 있습니다: http://momentjs.com/


Community Wiki

인라인 스크립트에 개체를 작성할 때 Microsoft 직렬 변환기에서 생성된 문자를 제거하기 위해 Panos의 정규식에 "문자를 추가했습니다.

따라서 C# 코드 숨김 에 다음과 같은 속성이 있는 경우

 protected string JsonObject { get { return jsSerialiser.Serialize(_myObject); }}

그리고 당신의 aspx에는

 <script type="text/javascript"> var myObject = '<%= JsonObject %>'; </script>

당신은 같은 것을 얻을 것입니다

 var myObject = '{"StartDate":"\/Date(1255131630400)\/"}';

큰따옴표에 주목하십시오.

이것을 eval이 올바르게 역직렬화하는 형식으로 가져오기 위해 다음을 사용했습니다.

 myObject = myObject.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)');

나는 Prototype 을 사용하고 그것을 사용하기 위해 추가했습니다.

 String.prototype.evalJSONWithDates = function() { var jsonWithDates = this.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)'); return jsonWithDates.evalJSON(true); }

Community Wiki

jQuery 1.5에서 이전 브라우저를 처리할 json2.js 가 있는 한 다음과 같이 Ajax에서 오는 모든 날짜를 역직렬화할 수 있습니다.

 (function () { var DATE_START = "/Date("; var DATE_START_LENGTH = DATE_START.length; function isDateString(x) { return typeof x === "string" && x.startsWith(DATE_START); } function deserializeDateString(dateString) { var dateOffsetByLocalTime = new Date(parseInt(dateString.substr(DATE_START_LENGTH))); var utcDate = new Date(dateOffsetByLocalTime.getTime() - dateOffsetByLocalTime.getTimezoneOffset() * 60 * 1000); return utcDate; } function convertJSONDates(key, value) { if (isDateString(value)) { return deserializeDateString(value); } return value; } window.jQuery.ajaxSetup({ converters: { "text json": function(data) { return window.JSON.parse(data, convertJSONDates); } } }); }());

서버의 모든 날짜를 UTC로 전송한다고 가정하는 논리를 포함시켰습니다. 그런 다음 소비자는 이를 반영하는 적절한 눈금 값 Date 즉, getUTCHours() 등을 호출하면 서버에서와 동일한 값이 반환되고 getHours() 를 호출하면 브라우저에서 결정한 사용자의 현지 시간대 값이 반환됩니다.

비교적 쉽게 추가할 수 있지만 시간대 오프셋이 있는 WCF 형식은 고려하지 않습니다.


Community Wiki

jQuery UI datepicker 사용 - 이미 jQuery UI를 포함하고 있는 경우에만 의미가 있습니다.

 $.datepicker.formatDate('MM d, yy', new Date(parseInt('/Date(1224043200000)/'.substr(6))));

산출:

2008년 10월 15일


Community Wiki

이것을 지나치게 생각하지 마십시오. 우리가 수십 년 동안 해왔듯이 1970년 1월 1일 자정 GMT/UTC/&c의 사실상 표준 에포크로부터 이 에포크 이후의 초(또는 밀리초) 수로 숫자 오프셋을 전달하십시오. JavaScript가 좋아하고 Java가 좋아하고 C가 좋아하고 인터넷이 좋아합니다.


Community Wiki

이러한 답변에는 모두 한 가지 공통점이 있습니다. 바로 날짜를 단일 값(보통 문자열)으로 저장한다는 것입니다.

또 다른 옵션은 JSON의 고유한 구조를 활용하고 날짜를 숫자 목록으로 나타내는 것입니다.

 { "name":"Nick", "birthdate":[1968,6,9] }

물론 대화의 양쪽 끝이 형식(연도, 월, 일)과 날짜가 될 필드에 대해 동의해야 하지만... 날짜 문제를 완전히 피할 수 있는 이점이 있습니다. -문자열 변환. 문자열이 전혀 없는 숫자입니다. 또한 년, 월, 일 순서를 사용하면 날짜별로 적절하게 정렬할 수도 있습니다.

여기에서 상자 밖에서 생각하면 JSON 날짜를 문자열로 저장할 필요가 없습니다.

이 방법의 또 다른 보너스는 CouchDB 가 배열 값에 대한 쿼리를 처리하는 방식을 활용하여 주어진 연도 또는 월의 모든 레코드를 쉽고 효율적으로 선택할 수 있다는 것입니다.


Community Wiki

멋진 스레드에 게시:

 var d = new Date(parseInt('/Date(1224043200000)/'.slice(6, -2))); alert('' + (1 + d.getMonth()) + '/' + d.getDate() + '/' + d.getFullYear().toString().slice(-2));

Community Wiki

여기에 다른 접근 방식을 추가 하기 위해 WCF 가 취하는 "틱 접근 방식"은 여기 및 다른 곳에서 설명한 것처럼 매우 조심하지 않으면 시간대 문제가 발생하기 쉽습니다. 그래서 저는 이제 .NET과 JavaScript 모두 표준 시간대 오프셋을 포함하여 정식으로 지원하는 ISO 8601 형식을 사용하고 있습니다. 세부정보는 다음과 같습니다.

WCF/.NET에서:

여기서 CreationDate는 System.DateTime입니다. ToString("o")은 ISO 8601 호환 날짜 문자열을 생성하는 .NET의 왕복 형식 지정자를 사용합니다.

 new MyInfo { CreationDate = r.CreationDate.ToString("o"), };

자바스크립트에서

JSON을 검색한 직후 ISO 8601 날짜 문자열을 허용하는 Date 생성자를 사용하여 날짜를 JavaSript Date 객체로 수정합니다...

 $.getJSON( "MyRestService.svc/myinfo", function (data) { $.each(data.myinfos, function (r) { this.CreatedOn = new Date(this.CreationDate); }); // Now each myinfo object in the myinfos collection has a CreatedOn field that is a real JavaScript date (with timezone intact). alert(data.myinfos[0].CreationDate.toLocaleString()); } )

JavaScript 날짜가 있으면 toDateString , toLocaleString 등과 같은 편리하고 안정적인 모든 Date 메서드를 사용할 수 있습니다.


Community Wiki

var newDate = dateFormat(jsonDate, "mm/dd/yyyy");

jQuery 라이브러리를 사용하지 않고 다른 옵션이 있습니까?


Community Wiki

이것은 또한 당신을 도울 수 있습니다.

 function ToJavaScriptDate(value) { //To Parse Date from the Returned Parsed Date var pattern = /Date\(([^)]+)\)/; var results = pattern.exec(value); var dt = new Date(parseFloat(results[1])); return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear(); }

Community Wiki

나는 다음과 같이 날짜를 얻습니다.

 "/Date(1276290000000+0300)/"

일부 예에서 날짜는 약간 다른 형식입니다.

 "/Date(12762900000000300)/" "Date(1276290000000-0300)"

등.

그래서 나는 다음 RegExp를 생각해 냈습니다.

 /\/+Date\(([\d+]+)\)\/+/

최종 코드는 다음과 같습니다.

 var myDate = new Date(parseInt(jsonWcfDate.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1')));

도움이 되기를 바랍니다.

업데이트: Microsoft에서 이 링크를 찾았 습니다. JSON을 사용하여 날짜를 직렬화하려면 어떻게 합니까?

이것은 우리 모두가 찾고 있는 것 같습니다.


Community Wiki

다음은 JSON 날짜를 구문 분석하는 매우 간단한 솔루션입니다. 귀하의 요구 사항에 따라 아래 기능을 사용하십시오. 아래 함수에 매개변수로 가져온 JSON 형식 날짜를 전달하기만 하면 됩니다.

 function JSONDate(dateStr) { var m, day; jsonDate = dateStr; var d = new Date(parseInt(jsonDate.substr(6))); m = d.getMonth() + 1; if (m < 10) m = '0' + m if (d.getDate() < 10) day = '0' + d.getDate() else day = d.getDate(); return (m + '/' + day + '/' + d.getFullYear()) } function JSONDateWithTime(dateStr) { jsonDate = dateStr; var d = new Date(parseInt(jsonDate.substr(6))); var m, day; m = d.getMonth() + 1; if (m < 10) m = '0' + m if (d.getDate() < 10) day = '0' + d.getDate() else day = d.getDate(); var formattedDate = m + "/" + day + "/" + d.getFullYear(); var hours = (d.getHours() < 10) ? "0" + d.getHours() : d.getHours(); var minutes = (d.getMinutes() < 10) ? "0" + d.getMinutes() : d.getMinutes(); var formattedTime = hours + ":" + minutes + ":" + d.getSeconds(); formattedDate = formattedDate + " " + formattedTime; return formattedDate; }

Community Wiki

또한 JavaScript 라이브러리 moment.js 를 사용할 수 있습니다. 이는 다양한 현지화된 형식을 처리하고 날짜 값으로 다른 작업을 수행할 계획일 때 유용합니다.

 function getMismatch(id) { $.getJSON("Main.aspx?Callback=GetMismatch", { MismatchId: id }, function (result) { $("#AuthMerchId").text(result.AuthorizationMerchantId); $("#SttlMerchId").text(result.SettlementMerchantId); $("#CreateDate").text(moment(result.AppendDts).format("L")); $("#ExpireDate").text(moment(result.ExpiresDts).format("L")); $("#LastUpdate").text(moment(result.LastUpdateDts).format("L")); $("#LastUpdatedBy").text(result.LastUpdateNt); $("#ProcessIn").text(result.ProcessIn); } ); return false; }

현지화 설정은 프로젝트에 구성 파일(momentjs.com에서 얻음)을 추가하고 언어를 구성하는 것만큼 쉽습니다.

 moment.lang('de');

Community Wiki

날짜 ISO 표준을 확인하십시오. 이런 종류:

 yyyy.MM.ddThh:mm

2008.11.20T22:18 됩니다.


Community Wiki

실망스럽네요. 내 솔루션은 ASP.NET의 JavaScriptSerializer에 의해 생성된 값에서 "/ 및 /"를 구문 분석하여 JSON에 날짜 리터럴이 없을 수도 있지만 여전히 브라우저에서 날짜로 해석되도록 하는 것이었습니다. 원하는: {"myDate":Date(123456789)}

DateTime용 사용자 정의 JavaScriptConverter?

Roy Tinker의 설명이 정확하다는 점을 강조해야 합니다. 이것은 합법적인 JSON이 아닙니다. JavaScript에 문제가 되기 전에 문제를 제거하는 것은 서버에 대한 더럽고 더러운 해킹입니다. JSON 파서를 질식시킵니다. 지상에서 내릴 때 사용했는데 더 이상 사용하지 않습니다. 그러나 여전히 최선의 답은 서버가 날짜 형식을 변경하는 것입니다(예: 다른 곳에서 언급한 ISO).


Community Wiki

늦었지만 이 글을 찾아주신 분들을 위해.

이것을 상상해보십시오.

 [Authorize(Roles = "Administrator")] [Authorize(Roles = "Director")] [Authorize(Roles = "Human Resources")] [HttpGet] public ActionResult GetUserData(string UserIdGuidKey) { if (UserIdGuidKey!= null) { var guidUserId = new Guid(UserIdGuidKey); var memuser = Membership.GetUser(guidUserId); var profileuser = Profile.GetUserProfile(memuser.UserName); var list = new { UserName = memuser.UserName, Email = memuser.Email , IsApproved = memuser.IsApproved.ToString() , IsLockedOut = memuser.IsLockedOut.ToString() , LastLockoutDate = memuser.LastLockoutDate.ToString() , CreationDate = memuser.CreationDate.ToString() , LastLoginDate = memuser.LastLoginDate.ToString() , LastActivityDate = memuser.LastActivityDate.ToString() , LastPasswordChangedDate = memuser.LastPasswordChangedDate.ToString() , IsOnline = memuser.IsOnline.ToString() , FirstName = profileuser.FirstName , LastName = profileuser.LastName , NickName = profileuser.NickName , BirthDate = profileuser.BirthDate.ToString() , }; return Json(list, JsonRequestBehavior.AllowGet); } return Redirect("Index"); }

보시다시피 "자동" 제네릭을 만들기 위해 C# 3.0의 기능을 활용하고 있습니다. 조금 게으르지만 마음에 들고 작동합니다. 참고 사항: 프로필은 웹 응용 프로그램 프로젝트를 위해 만든 사용자 지정 클래스입니다.


Community Wiki

참고로, 서버 측에서 Python을 사용하는 모든 사용자의 경우 datetime.datetime().ctime()은 기본적으로 "new Date()"로 구문 분석 가능한 문자열을 반환합니다. 즉, 새 datetime.datetime 인스턴스(예: datetime.datetime.now 사용)를 생성하는 경우 문자열을 JSON 문자열에 포함할 수 있으며 해당 문자열을 Date 생성자에 대한 첫 번째 인수로 전달할 수 있습니다. 아직 예외를 찾지 못했지만 너무 엄격하게 테스트하지도 않았습니다.


Community Wiki

무툴즈 솔루션:

 new Date(Date(result.AppendDts)).format('%x')

mootools-more가 필요합니다. Firefox 3.6.3 및 IE 7.0.5730.13에서 mootools-1.2.3.1-more를 사용하여 테스트했습니다.


Community Wiki

var obj = eval('(' + "{Date: \/Date(1278903921551)\/}".replace(/\/Date\((\d+)\)\//gi, "new Date($1)") + ')'); var dateValue = obj["Date"];

Community Wiki

페이지에 jQuery UI 플러그인을 추가합니다.

 function DateFormate(dateConvert) { return $.datepicker.formatDate("dd/MM/yyyy", eval('new ' + dateConvert.slice(1, -1))); };

Community Wiki

.NET이 반환되는 경우...

 return DateTime.Now.ToString("u"); //"2013-09-17 15:18:53Z"

그리고 자바스크립트에서...

 var x = new Date("2013-09-17 15:18:53Z");

Community Wiki

출처 : http:www.stackoverflow.com/questions/206384/how-do-i-format-a-microsoft-json-date

반응형