2017-05-23 4 views
0

Datetime 타임 스탬프를 NSDate로 변환하는 방법? 역수를 만드는 방법은 무엇입니까?Datetime C#을 Objective c 및 invertion으로 변환

문자열로 날짜를 변환하는 나의 방법 :

+(NSString*) dateTojson:(NSDate*)date{ 

    return [NSString stringWithFormat:@"/Date(%f)/",(double)([date dateWithTimeIntervalSince1970] * 1000)]; 
} 

내 역 방법 :

+(NSDate*) jsonToDate:(NSString *)json 
{ 
    double milisec = 0; 
    json = [[[json stringByReplacingOccurrencesOfString:@"/Date(" withString:@""] stringByReplacingOccurrencesOfString:@"/" withString:@""] stringByReplacingOccurrencesOfString:@"-0200" withString:@""]; 
    NSArray *arr = [json componentsSeparatedByString:@"-"]; 
    for(NSString *s in arr) { 
     if(![s isEqualToString:@""]){ 
      milisec += [s doubleValue]; 
     } 
    } 

    NSDate *date = [NSDate dateWithTimeIntervalSince1970:(milisec/1000.0)]; 

    return date; 
} 

내가 1495497600는 "2017년 5월 23일"를 나타냅니다 [self jsonToDate:@"/Date(1495497600)/"]를 사용하는 방법이 저를 반환 잘못된 날짜 (결과 = "01/18/1970"). 왜?

참고 : 내가 시간을 고려하고 있지 않다

만 날짜입니다. 내 변수 milisec은 1495497600과 같으므로 문제는 dateWithTimeIntervalSince1970입니다. 이미

같은 몇 가지 게시물을 시도해보십시오

Convert milliseconds to NSDate

How to Convert a milliseconds to nsdate in objective C 당신은 정말 끝에서 밀리 초를 나눌 필요가 없습니다

+0

1495497600은 "05/23/2013"이 아니며 "05/23/2017"입니다. 이 줄에서 돌아 오는 json을 확인하십시오. json = [[[json stringByReplacingOccurrencesOfString .......] 일반 텍스트 편집기로 복사하면 거기에 잘못 인코딩 된 문자가있을 수 있습니다. –

+0

내가 질문을 업데이 트 –

답변

1

:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:milisec]; 

결과 :

2017-05-23 00:00:00 +0000 
+0

고마워, 그 작품,하지만 왜 1000으로 나눌 필요가 없으며 다른 방법 중 하나를 번식? 이것은 차이점을 제공하며 스택의 모든 대답은이를 수행해야한다고 말합니다. 어쨌든, 다시 한번 감사드립니다. –

+0

그것은 당신의 시간이 밀리 세컨드가 아닌 초 단위이기 때문에 당신이 그것을 1000으로 나눌 때 당신은 1970 년 1 월 1 일부터 약 18 일을 끝낼 것입니다. –

+1

1495497600 초/1000 밀리 초 = 1/1/1970 = 01/18/1970 이후 1.495 × 10^9 밀리 초. –