2014.04.02
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
Mac,iPhone,Objective-C 利用歴4ヶ月の新米プログラマーが送る
自分が使って役立ったmethod集
シリーズ第一弾です。
今回は、文字列を日付に変換についてです
今後も自前のObjective-Cクラス、common.hとcommon.mに書き足していきます。
common.h
+ (NSDate *)stringToDate:(NSString *)baseString;
common.m
+ (NSDate *)stringToDate:(NSString *)baseString
{
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
// iPhoneの現在の設定に合わせる
[inputDateFormatter setLocale:[NSLocale currentLocale]];
[inputDateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *inputDate = [inputDateFormatter dateFromString:baseString];
return inputDate;
}
呼び出し方
ViewController.h に修正はありません。
#import "ViewController.h"
#import "common.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
?// Do any additional setup after loading the view, typically from a nib.
NSDate *dateVal = [common stringToDate:@"2014-04-15"];
NSLog(@"%@",dateVal);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
実行結果
2014-04-14 15:00:00 +0000
呼び出す方は + (NSDate *)stringToDate:(NSString *)baseStringで設定しているフォーマットつまり、”yyyy-MM-dd”形式じゃ無いとうまく変換され無いので注意が必要です。
“yyyy/MM/dd”は結果が正しく取得出来ません。
普段使うフォーマットが違う場合は書き換えておくといちいち変換しなくていいので便利です。
実行結果が15:00:00なのはGregorianで表示しているからで、
画面に表示するときにはlocaltimeに変換されます。
参考にさせていただいたサイトです