YouTubeのAPIは、RFC3339形式の日付文字列を返します。私はマニュアルでそれを解析する方法を見つけましたが、とにかく、これは長すぎます。iOSでRFC3339の日付文字列を解析する最も簡単な方法は何ですか?
- (NSString *)userVisibleDateTimeStringForRFC3339DateTimeString:(NSString *)rfc3339DateTimeString
// Returns a user-visible date time string that corresponds to the
// specified RFC 3339 date time string. Note that this does not handle
// all possible RFC 3339 date time strings, just one of the most common
// styles.
{
NSString * userVisibleDateTimeString;
NSDateFormatter * rfc3339DateFormatter;
NSLocale * enUSPOSIXLocale;
NSDate * date;
NSDateFormatter * userVisibleDateFormatter;
userVisibleDateTimeString = nil;
// Convert the RFC 3339 date time string to an NSDate.
rfc3339DateFormatter = [[[NSDateFormatter alloc] init] autorelease];
enUSPOSIXLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];
[rfc3339DateFormatter setLocale:enUSPOSIXLocale];
[rfc3339DateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
[rfc3339DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
date = [rfc3339DateFormatter dateFromString:rfc3339DateTimeString];
if (date != nil) {
// Convert the NSDate to a user-visible date string.
userVisibleDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
assert(userVisibleDateFormatter != nil);
[userVisibleDateFormatter setDateStyle:NSDateFormatterShortStyle];
[userVisibleDateFormatter setTimeStyle:NSDateFormatterShortStyle];
userVisibleDateTimeString = [userVisibleDateFormatter stringFromDate:date];
}
return userVisibleDateTimeString;
}
私は機能がこれを含ませることができますが、私が知りたいのは、これを行うにはココアの基礎や、標準CまたはPOSIXライブラリであり、事前に定義された方法です。それがあればそれを使いたいです。もっと簡単な方法があるのか教えていただけますか?または、これが最も簡単な方法であることを確認したら、非常に感謝します:)
残念ながら、このコードでは、一度だけテストした時の秒の派閥部分を処理できませんでした。 – Eonil
@Eonil:フォーマット文字列を修正する必要があります。関連する仕様では、小数点以下の桁数に対してフォーマット文字が定義されています。http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns –
ああこれはいいですね。私はこれを試してみる:) – Eonil