我已经实现了一个iphone应用程序,我希望将NSDate转换为NSString但是采用德语格式。
你能给我一些想法。
我正在使用以下代码。
NSDate * date = [NSDate dateWithTimeIntervalSince1970:[[eventInfo valueForKey:@“startdat”] intValue]];
// 2011-05-01 21:04:00 +0000(我正在约会这个日期)
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
NSLocale *nl_NL = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"];
[formatter1 setDateFormat:@"E,dd MMM yyyy"];
[formatter1 setLocale:nl_NL];
NSString *stringFromDate1 = [formatter1 stringFromDate:date];
[formatter1 release];
[nl_NL release];
//我收到了stringFromDate1 =“Mo.,02 Mai 2011”的价值。(错误输出)
请给我一点想法
答案 0 :(得分:0)
使用例如
[formatter1 setDateStyle:NSDateFormatterLongStyle];
而不是setDateFormat:
。
答案 1 :(得分:0)
问题是当NSDateFormatter格式化日期时会考虑时区。如果希望NSDateFormatter格式化与NSLog'd版本完全相同的日期,则需要显式设置格式化程序的时区。
[formatter1 setDateFormat:@"E,dd MMM yyyy"];
[formatter1 setLocale:nl_NL];
[formatter1 setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
答案 2 :(得分:0)
我不确定(根据您的问题),您的预期产量是多少。但假设您正在寻找一周中的全天描述,请尝试以下日期格式:
[dateFormatter setDateFormat:@"EEEE, dd MMM yyyy"];
它给出了输出:
Sonntag,01 Mai 2011(使用de_DE语言环境)
通常,字符数决定了日期字段的大小:
例如。输入日期= 2011-05-01星期日
1个字符= 1个数字/字符数字或单词(如果数字/单词长度不能超过1个字符,则显示缩写或全名)。
[dateFormatter setDateFormat:@"E, d M y"]; // Sun, 1 5 2011
2个字符= 2个数字/字符数字或单词(如果数字/单词长度不能超过2个字符,则显示缩写)。
[dateFormatter setDateFormat:@"EE, dd MM yy"]; // Sun, 01 05 11
3个字符= 3个数字/字符数字或单词,或缩写(通常)。
[dateFormatter setDateFormat:@"EEE, ddd MMM yyy"]; // Sun, 001 May 2011
4个字符=全名(一般)。
[dateFormatter setDateFormat:@"EEEE, dddd MMMM yyyy"]; // Sunday, 0001 May 2011
这是奇怪的部分,但如果你指定5个E,你会得到一个意想不到的输出:
[dateFormatter setDateFormat:@"EEEEE, ddddd MMMMM yyyyy"]; // S, 00001 M 2011
对于日期格式化,我发现以下参考表非常有用。 http://www.unicode.org/reports/tr35/#Date_Field_Symbol_Table
祝你好运