2014-05-22 5 views
2

서버에서 데이터를 가져 오는 중이며 해당 데이터의 일부가 시간입니다. 시간은 내 DB에 UTC로 저장되므로 반환하는 항목은 UTC이기도합니다. 예를 들어 : 또한 2014-05-22 05:12:40UTC 시간을 현지 시간으로 변환

, 나는

문제는 .... X hours ago 또는 X minutes ago 등과 같은 장치의 시간 차이를 보여주기 위해 DateTools을 사용하고있는 서버에서 오는 UTC 시간이 비교 될 때 현지 시간에는 큰 차이가 있습니다. X seconds ago이라고하는 내용의 경우 시차 때문에 X hours ago이라고 표시됩니다.

질문

는 어떻게 디바이스에 설정된 로컬 시간대에 서버에서 오는 날짜를 변환 할 수 있습니까? 다음과 같이

@date_formatter = NSDateFormatter.alloc.init 
@date_formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
@date_from_server = "2014-05-22 05:12:40" 
@date = @date_formatter.dateFromString(@date_from_server) 
@time.text = @date.shortTimeAgoSinceNow 

답변

0

나는 그것을 완료, 그것은 루비 운동이 아니라 목표 - C에서 수행하는 방법을 모르는 :

1

내가 지금 뭘하는지입니다 .) 일부터 날짜를 가져 오기) NSDateFormatter 클래스

2) 그것의 특정 날짜 형식 문자열을 설정의 인스턴스를 생성하고, 또한 당신은

3의 특정 시간대를 설정 dateformatter 예를

4)를 통해 전자 들어오는 문자열은 현지 시간대

5)에 날짜 포맷터 인스턴스가 새로운 시간대로 이전에 얻은 날짜를 변환 zoneof 시간을 변경합니다.

목표 - C

NSDateFormatter* df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:incomingDateFormat]; 
[df setTimeZone:incomingTimeZone]; // Can be set to @"UTC" 

NSDate *date = [df dateFromString:incomingDateString]; 

[df setDateFormat:newDateFormat]; 
[df setTimeZone:newTimeZone]; //// Can be set to [NSTimeZone localTimeZone] 

NSString *newDateStr = [df stringFromDate:date]; 

에서

나는 같은 너무 Rubymotion으로 수행 할 수 있다고 생각합니다.

1
NSDateFormatter *formater = [[NSDateFormatter alloc] init]; 
formater.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 
NSString *datestr = @"2014-05-22 05:12:40"; 
formater.timeZone = [NSTimeZone localTimeZone]; 
NSDate *date = [[formater dateFromString:datestr] dateByAddingTimeInterval:formater.timeZone.secondsFromGMT]; 
0
NSDateFormatter *df=[[[NSDateFormatter alloc] init] autorelease]; 
    // Set the date format according to your needs 
    [df setTimeZone:[NSTimeZone timeZoneWithName:@"America/Toronto"]]; 
    //[df setDateFormat:@"MM/dd/YYYY HH:mm "] // for 24 hour format 
    [df setDateFormat:@"YYYY-MM-dd HH:mm:ss"];// for 12 hour format 

시도