我是iOS(Objective-c)编码的新手,我被困在时间戳上。
我正在获取JSON解析时的时间戳,即。2017-04-30T14:30+00:00(GMT)
。如何从这个时间戳获取日期,小时,分钟和秒?我在GMT
中收到此格式,是否可以将其转换为"IST"
?怎么样?
答案 0 :(得分:1)
日期格式模式
日期模式是一个字符串,其中特定的字符串在格式化时用日历中的日期和时间数据替换,或者用于在解析时生成日历的数据。以下是模式中用于显示给定语言环境的适当格式的字符。以下是示例:
- (NSString *)curentDateStringFromDate:(NSDate *)dateTimeInLine withFormat:(NSString *)dateFormat {
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:dateFormat];
NSString *convertedString = [formatter stringFromDate:dateTimeInLine];
return convertedString;
}
使用如下:
NSString *dateString = [self curentDateStringFromDate:[NSDate date] withFormat:@"dd-MM-yyyy"];
NSString *timeString = [self curentDateStringFromDate:[NSDate date] withFormat:@"hh:mm:ss"];
NSString *hoursString = [self curentDateStringFromDate:[NSDate date] withFormat:@"h"];
在Foundation framework
中,用于此任务的课程(向任一方向)为NSDateFormatter
Refer here
以下代码将GMT转换为IST。
NSString *inDateStr = @"2000/01/02 03:04:05";
NSString *s = @"yyyy/MM/dd HH:mm:ss";
// about input date(GMT)
NSDateFormatter *inDateFormatter = [[NSDateFormatter alloc] init];
inDateFormatter.dateFormat = s;
inDateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDate *inDate = [inDateFormatter dateFromString:inDateStr];
// about output date(IST)
NSDateFormatter *outDateFormatter = [[NSDateFormatter alloc] init];
outDateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"IST"];
outDateFormatter.dateFormat = s;
NSString *outDateStr = [outDateFormatter stringFromDate:inDate];
// final output
NSLog(@"[in]%@ -> [out]%@", inDateStr, outDateStr);