/
NSDate+StringParsing.m
45 lines (36 loc) · 1.54 KB
/
NSDate+StringParsing.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
// NSDate+StringParsing.m
// CJKit
//
// Created by Bruno Abrantes on 22/04/14.
// Copyright (c) 2014 Clubjudge. All rights reserved.
//
#import "NSDate+StringParsing.h"
@implementation NSDate (StringParsing)
+ (NSDate *)dateWithISO8601String:(NSString *)dateString
{
if (!dateString || [dateString isKindOfClass:[NSNull class]]) return nil;
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\.\\d*Z"
options:NSRegularExpressionCaseInsensitive
error:&error];
dateString = [regex stringByReplacingMatchesInString:dateString
options:0
range:NSMakeRange(0, [dateString length])
withTemplate:@"$2$1"];
return [self dateFromString:dateString
withFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
}
+ (NSDate *)dateFromString:(NSString *)dateString
withFormat:(NSString *)dateFormat
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:dateFormat];
NSLocale *locale = [[NSLocale alloc]
initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:locale];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date = [dateFormatter dateFromString:dateString];
return date;
}
@end