1

我从这里参考了以前的例子。但是空值仍然存在问题。

字符串值为 :==> 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];

它给出(空)值。因为 disDate 具有 (null) 值。

为什么 disDate 设置为零..?任何解决方案..?

4

4 回答 4

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 回答
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 回答
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 回答
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 回答