COMPANY SERVICE STAFF BLOG NEWS CONTACT

STAFF BLOG

スタッフブログ

TECHNICAL

テクログ

2014.05.22

Objective-C | 年月日時分秒の文字列を 日付(NSDate)型に変換

テクログ

Mac,iPhone,Objective-C 全て利用歴5ヶ月の新米プログラマーが送る

自分が使って役立ったmethod集

シリーズ第九弾です。

文字列変換、時分秒バージョン。フォーマット引数を用意して任意にしてもよかったのですが、

今回2パターンしか使わなかったので分けました。

common.h

+ (NSDate *)stringToDateTime:(NSString *)baseString;

common.m

+ (NSDate *)stringToDateTime:(NSString *)baseString
{
    NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
    //24時間表示 & iPhoneの現在の設定に合わせる
    [inputDateFormatter setLocale:[NSLocale currentLocale]];
    
    [inputDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    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 stringToDateTime:@"2014-05-22 15:26:37"];
    NSLog(@"%@",dateVal);
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

実行結果
2014-05-22 06:26:37 +0000

呼び出す方は + (NSDate *)stringToDate:(NSString *)baseStringで設定しているフォーマットつまり、”yyyy-MM-dd HH:mm:ss”形式じゃ無いとうまく変換され無いので注意が必要です。
“yyyy/MM/dd”は結果が正しく取得出来ません。

普段使うフォーマットが違う場合は書き換えておくといちいち変換しなくていいので便利です。

実行結果時間が違うのは以前と同じく Gregorianで表示しているからで、
画面に表示するときにはlocaltimeに変換されます。

参考にさせていただいたサイトです

強火で進め

そのほかのObjective-C関連の記事をお探しならコチラをどうぞ

弊社から出している拙作スケジュールのアプリです。
スケジュールというかちょっとした予定を入力して、社長、同僚、家族がどこ行った??っていうときに第三者が確認するためのアプリです
是非ダウンロードして感想をお聞かせ下さい。

『Team Scheduler』 概要
▼アプリ価格: 無料
▼対応OS: iOS(iPhone/iPod Touch)、Android
▼カテゴリ: 仕事効率化(App Store)、ビジネス(Google Play)
▼対応言語: 日本語
▼推奨環境:
iOS版: iPhone4以降、iOS6. 0以降
Android版: Android OS 2. 3以降
▼ダウンロード:
App Storeからダウンロード
Google playで手に入れよう

この記事を書いた人

core-corp

入社年

出身地

業務内容

特技・趣味

テクログに関する記事一覧

TOP