1

UIDatePickerModeDateAndTime形式で出力を返します

2012-12-20 07:15:18 +0000.

+0000出力からを削除するにはどうすればよいですか?

スクリーンショットを撮りたかったのですが、私の評判だけでは十分ではありません。疑問が解消されることを願っています。

4

4 に答える 4

1

使うNSDateFormatter

- (IBAction)dateChanged:(UIDatePicker *)sender {
    NSDate *date = sender.date;
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateStyle:NSDateFormatterShortStyle];   // if you want to show the date to the user
    [df setTimeStyle:NSDateFormatterShortStyle];   // if you want to show the date to the user
    // [df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  // if you want to use the date for your model

    NSString *dateString = [df stringFromDate:date];
    NSLog(@"%@", dateString);
}

ユーザーに日付を表​​示したい場合は、 と を使用setDateStyle:してくださいsetTimeStyle:。これらはロケールを認識し、正しい形式で出力を生成するためです。その日付がバックエンド (ファイル名の作成など) にのみ必要な場合は、setDateFormat:.

于 2012-12-20T07:30:34.697 に答える
0

次のように使用します。

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyy-MM-dd HH:mm:ss"];
NSDate *today = [NSDate date];
NSString *dateString =[dateFormatter stringFromDate:today];
NSLog(@"Date is: %@",dateString);

出力:

Date is: 2012-12-20 12:58:58
于 2012-12-20T07:34:15.913 に答える
0

これには多くの解決策があります。これらのいくつかは次のとおりです。

1) 空文字列による + 0000 の置換

2) (長さ - 5) まで出力をスライスする

より多くのソリューションを開発するには、創造性が必要です。

于 2012-12-20T07:27:40.033 に答える
0

ここにコードがあります

NSString *calDate = @"2011-11-11 21:56:38 +0000";

NSDate *date = [[[NSDate alloc] init] retain];

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

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];  

//                                   right here    ^

date = [dateFormatter dateFromString:calDate];

NSLog(@"date:%@", date);

出力:

2012-01-03 20:14:15.258 Craplet[38753:707] date:2011-11-11 21:56:38 +0000

Z なし:

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

以下を出力します。

2012-01-03 20:16:10.456 Craplet[38885:707] date:(null)

フォーマットが日付文字列と一致しない場合は、nil を返します。

于 2012-12-20T07:30:40.067 に答える