원격 소스에서 많은 참조 날짜를 가져오고 있습니다. 날짜는 일년 중 임의의 요일 (이 경우 01/01/2000)의 시간을 나타냅니다. 유닉스 타임 스탬프로 제공된다. 예를 들어 946717200은 오전 9시를 나타냅니다. 또한 각 위치의 시간대가 표시됩니다.시스템 표준 시간대와 관계없이 동일한 시간대에 NSDates 서식 지정
다음 코드를 사용하여이 시간을 UTC에서 올바른 오프셋을 사용하여 실제 날짜로 변환합니다.
946,717,200의 주어진 입력, 현재 날짜, 미국/로스 엔젤레스 시간대로 예를 들어-(NSDate *)dateWithInterval:(NSTimeInterval)interval referenceDate:(NSDate *)aRealDate timezone:(NSTimeZone *)aTimeZone
{
NSDate *time = [NSDate dateWithTimeIntervalSince1970:interval];
NSDateComponents *components = [[NSDateComponents alloc] init];
//Set the timezone
[components setTimeZone:aTimeZone];
//I'm using Erica Sadun's NSDate+utilities category on NSDate to provide the shorthand methods
[components setDay:[aRealDate day]];
[components setMonth:[aRealDate month]];
[components setYear:[aRealDate year]];
[components setHour:[time hour]];
[components setMinute:[time minute]];
[components setSecond:[time seconds]];
return [[NSCalendar currentCalendar] dateFromComponents:components];
}
, 나는 날짜 2013년 10월 7일 16시 0분 0초 0000하지만 때를 부여하고있어 00 : 나는 무엇을 00-0700
을하고 있지 않다 2013-10-07T01 으로 미국/로스 엔젤레스로 설정 시간대, 같은 시간대로 설정 시스템과 그이 (가) NSDateFormatter를 사용하는 형식은,이 나타납니다 바르게?
귀하의 문제는 바로이 날짜에 나타나는 "T"입니까? –
아니요, 실제 날짜가 잘못되었습니다. 형식이 문제가되지 않았습니다. – Jonathan