11

私はおそらく、ばかげた問題に腹を立てています。

年、月、日の3つの文字列があります。currentLocaleに基づいた正しい形式の日付が必要です。つまり、currentLocale localeIdentifierがen_USの場合、dateFormatはMMM / dd/yyyyになります。

fr_FRの場合、dateFormatはdd / MMM/yyyyである必要があります

これを行う唯一の方法は、currentLocale localeIdentifierを取得し、ifの束から始めることではないと思います。

前もって感謝します。

マックス

4

6 に答える 6

34

私があなたの質問を理解した場合、あなたはあなたNSDateFormatterをユーザーのデバイスのロケールに設定したいと思います。そのためには、次のようなことを行うことができます。

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setLocale:[NSLocale currentLocale]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
于 2011-05-09T15:11:35.127 に答える
7

NSDateComponentsを見てNSDateを作成し、NSDateFormatterを使用してフォーマットします。NSDateFormatterは、現在のロケールを使用して、フォーマットスタイル(例)に基づいて日付をフォーマットします
NSDateFormatterMediumStyle

于 2011-05-09T15:09:33.367 に答える
4

Swift 3:

let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
formatter.locale = Locale.current
let date = Date()
let dateString = formatter.string(from: date)
print(dateString)
于 2015-07-28T09:25:44.977 に答える
2
-(NSString *) stringFromDate:(NSDate *) date{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];

    [dateFormatter setLocale:[NSLocale currentLocale]];

    NSString *dateString = [dateFormatter stringFromDate:date];

    [dateFormatter release];

    return dateString;
}

-(NSDate *) dateFromString:(NSString *) dateInString{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];

    [dateFormatter setLocale:[NSLocale currentLocale]];

    NSDate *dateFromString = [dateFormatter dateFromString:dateInString];

    [dateFormatter release];

    return dateFromString;
}

これがお役に立てば幸いです。

于 2011-05-09T15:12:06.387 に答える
1

このリンクをチェックして、 http://www.codingexplorer.com/swiftly-getting-human-readable-date-nsdateformatter/NSDateFormatterに基づく方法を理解してください。

于 2016-09-23T05:00:56.043 に答える
0

setDateStyleで使用できる形式よりも形式の柔軟性を高めたい場合は、同様の質問に対する私の回答をご覧ください: https ://stackoverflow.com/a/20219610/1896336

于 2013-11-26T14:38:36.157 に答える