1

ここから以前の例を参照しました。しかし、null 値にはまだ問題があります。

文字列値:==> strDate = "09-05-2012 00:00:00"

:==> 2012 年 5 月 9 日として出力したい

私のコード:

NSString *strDateFormat;//[strDate substringWithRange:NSMakeRange(0, 10)];
strDateFormat = [NSString stringWithFormat:@"%@", strDate];

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

NSDate *disDate = [df dateFromString:strDateFormat];
[df setDateFormat:@"MMM dd, yyyy"];

strDateFormat = [df stringFromDate:disDate];

lblDate.text = [NSString stringWithFormat:@"%@", strDateFormat];

[df release];

(null) 値を返します。disDate には (null) 値があるためです。

disDate が nil に設定されているのはなぜですか? 解決策はありますか..?

4

4 に答える 4

2

また、文字列を読み取るときに期待する形式をフォーマッタに伝える必要があります。

NSString *string = @"09-05-2012 00:00:00";
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:string];
[formatter setDateFormat:@"MMM dd, yyyy"];
NSString *formattedString = [formatter stringFromDate:date];
于 2012-05-09T12:02:30.090 に答える
2
-(NSString*)getStringWithFormat:(NSString*)pStrDate fromFormat:(NSString*)pFromFormat toFormat:(NSString*)pToFormat
{
    NSDateFormatter *dtFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dtFormatter setDateFormat:pFromFormat];
    NSDate *fromFormatDate = [dtFormatter dateFromString:pStrDate];
    [dtFormatter setDateFormat:pToFormat];
    return [dtFormatter stringFromDate:fromFormatDate];
}

そしてそれをこのように呼びます

NSString *strDate = [self getStringWithFormat:@"09-05-2012 00:00:00" fromFormat:@"dd-MM-yyyy HH:MM:SS" toFormat:@"MMM dd, yyyy"];

これは一般的な関数です. 任意の形式で使用できます. 引数にその形式を渡すだけです.

于 2012-05-09T11:57:56.303 に答える
0
NSString *strDateFormat; //[strDate substringWithRange:NSMakeRange(0, 10)];

strDateFormat = [NSString stringWithFormat:@"%@", strDate];

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

[df setDateFormat:@"MMM dd, yyyy"];
 // ###### Set dateformat also here according to strDateFormat 

NSDate *disDate = [df dateFromString:strDateFormat];

[df setDateFormat:@"MMM dd, yyyy"];

strDateFormat = [df stringFromDate:disDate];

lblDate.text = [NSString stringWithFormat:@"%@", strDateFormat];

[df release];
于 2012-05-09T11:54:14.177 に答える
0

フォーマッタパターンを設定していません

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setFormatterBehavior:NSDateFormatterBehavior10_4];
    [df setDateFormat:@"MMM dd, yyyy"];
    NSDate *convertedDate = [df dateFromString:origDate];
    [df release];
于 2012-05-09T11:52:32.983 に答える