从UTC字符串获取日期

问题描述 投票:-1回答:1

[这里,当我尝试将该字符串转换为日期为null时,我正在获取字符串格式的日期。如何直接从下面的函数获取日期。

-(NSString *)getLocalDateTimeFromUTC:(NSString *)strDate
    {
    // create dateFormatter with UTC time format
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"]; //@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
    NSDate *date = [dateFormatter dateFromString:strDate]; // create date from string

    // change to a readable time format and change to local time zone
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
    NSString *timestamp = [dateFormatter stringFromDate:date];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *date2 = [dateFormatter dateFromString:timestamp];
    NSLog(@"%@", date2); //Mon Dec  2 00:00:00 2019. wrong formate
    return [dateFormatter stringFromDate:date];
}
ios objective-c cocoa-touch nsdate nsdateformatter
1个回答
0
投票

转换为日期无关紧要。删除几行

-(NSString *)getLocalDateTimeFromUTC:(NSString *)strDate
    {
    // create dateFormatter with UTC time format
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; //@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
    NSDate *date = [dateFormatter dateFromString:strDate]; // create date from string

    // change to a readable time format and change to local time zone
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
    NSString *timestamp = [dateFormatter stringFromDate:date];
    NSLog(@"%@", timestamp); 
    return timestamp;
}
© www.soinside.com 2019 - 2024. All rights reserved.