0

この形式の文字列に日付があります"Tue, 23 Oct 2012 01:05:00 +0000"ここで、日付形式を「 TUE OCT 23 2012 1:05AM 」に変換したいと思います。これを行う最善の方法は何ですか?

4

3 に答える 3

12

この方法を使用します。文字列を渡して、必要に応じて日付形式を設定します。ご希望のお日にちをお返しします。

- (NSDate *) getDateFromString:(NSString *) inputDate
{

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

    [dateForm setDateFormat:@"yyyy-MM-dd"];

    NSDate *dateSelected = [dateForm dateFromString:inputDate];

    [dateForm release];

    return dateSelected;
}

それがうまくいくことを願っています。

================================================== =============

日付形式のオプションは次のとおりです。

これで、NSDateFormatter で使用できるすべての文字列形式が必要になります。これがそれです

a: 午前/午後

A: 0~86399999 (日のミリ秒)

c/cc: 1~7 (曜日)

ccc: 日/月/火/水/木/金/土

cccc: 日曜日/月曜日/火曜日/水曜日/木曜日/金曜日/土曜日

d: 1~31 (月の日を 0 で埋めたもの)

D: 1~366 (0 パディングされた年間通算日)

e: 1~7 (0 パディングされた曜日)

E~EEE: 日/月/火/水/木/金/土

EEEE: 日曜日/月曜日/火曜日/水曜日/木曜日/金曜日/土曜日

F: 1~5 (月の週を 0 で埋め、週の最初の日 = 月曜日)

g: ユリウス日 (紀元前 4713 年 1 月 1 日からの日数)

G~GGG: BC/AD (元号省略)

GGGG:キリスト以前/アノ・ドミニ

h: 1~12 (0 パディング時間 (12hr))

H: 0~23 (0 パディング時間 (24 時間))

k: 1~24 (0 パディング時間 (24hr)

K: 0~11 (0 パディング時間 (12hr))

L/LL: 1~12 (0 パッド月)

LLL: 1月/2月/3月/4月/5月/6月/7月/8月/9月/10月/11月/12月

LLLL: 1月/2月/3月/4月/5月/6月/7月/8月/9月/10月/11月/12月

m: 0~59 (0 分をパディング)

M/MM: 1~12 (0 埋め月)

MMM: 1 月/2 月/3 月/4 月/5 月/6 月/7 月/8 月/9 月/10 月/11 月/12 月

MMMM: 1 月/2 月/3 月/4 月/5 月/6 月/7 月/8 月/9 月/10 月/11 月/12 月

q/qq: 1~4 (0 パディング クォーター)

qqq: Q1/Q2/Q3/Q4

qqqq: 第 1 四半期/第 2 四半期/第 3 四半期/第 4 四半期

Q/QQ: 1~4 (0 パディング クォーター)

QQQ: Q1/Q2/Q3/Q4

QQQQ: 第 1 四半期/第 2 四半期/第 3 四半期/第 4 四半期

s: 0~59 (0 秒をパディング)

S: (1 秒未満で四捨五入)

u: (0 パディングされた年)

v~vvv: (一般的な GMT タイムゾーンの略語)

vvvv: (一般的な GMT タイムゾーン名)

w: 1 ~ 53 (年の 0 埋め込み週、最初の曜日 = 日曜日、注: 年の最初の週は昨年の最後の日曜日から始まります)

W: 1~5 (月の週を 0 で埋め、週の最初の日 = 日曜日)

y/yyyy: (通年)

yy/yyy: (2 桁の年)

Y/YYYY: (通年、年の第 1 週の日曜日から開始)

YY/YYY: (年の第 1 週の日曜日から始まる 2 桁の年)

z~zzz: (特定の GMT タイムゾーンの省略形)

zzzz: (特定の GMT タイムゾーン名)

Z: +0000 (RFC 822 タイムゾーン)

==========================================

書式はお好みで設定してください。

于 2012-10-23T06:30:02.703 に答える
3
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr]; 

でもまず

  1. を作成して、日付文字列を オブジェクトNSDateFormatterに変換します。NSDate
  2. 2番目を作成してNSDateFormatter(または最初のフォーマット文字列を変更して)NSDate、文字列に戻します。

これは少し役に立ちますか?

編集

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-ddHH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-04-0600:28:27"];
于 2012-10-23T06:16:51.147 に答える
2

この次のメソッドを使用して、日付を渡します...

       -(NSString *)StringFromDate:(NSString *)DateLocal{
        DateLocal = [self trimString:DateLocal];
        NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];   
        [dateFormatter setDateFormat:@"EEE, dd LLL yyyy hh:mm:ss Z"];

        NSDate *date = [dateFormatter dateFromString: DateLocal];
        NSString *tt = [dateFormatter stringFromDate:date];
        NSDate *dateReturn = [dateFormatter dateFromString:tt];


        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setDateFormat:@"EEE LLL dd yyyy hh:mm a"];
        NSString *dateString = [dateFormat stringFromDate:dateReturn];  
        NSLog(@"Date is HERE  =====>> %@",dateString);
        [dateFormat release];
        return dateString;
    }
于 2012-10-23T06:30:39.930 に答える