2015-10-16 42 views
-1

我做下面的代码:日期格式皈依问题

NSString *stringToFormat = ticket.date; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"dd MMMM yyyy"]; 

df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; 
[df setDateFormat:@"dd.MM.yyyy"]; 
NSString *final = [df stringFromDate:[df dateFromString:stringToFormat]]; 
self.dateLabel.text = final; 

的问题是,最后是零?为什么? Thx

+0

显示你的日期? –

+0

ticket.date包含什么? – iAnurag

+0

这种格式的日期16.Octombrie.2015 10:02 – Spartanu13

回答

1

两个问题:

  1. 您使用的日期格式相同的实例有两个不同的日期格式。
  2. 您的日期格式设置错误,以适合您的输入日期。

这里被纠正代码:

NSString *stringToFormat = @"16.Octombrie.2015 10:02"; 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; 
[df setDateFormat:@"dd.MMMM.yyyy hh:mm"]; 

NSDateFormatter *df2 = [[NSDateFormatter alloc] init]; 
df2.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; 
[df2 setDateFormat:@"dd.MM.yyyy"]; 

NSString *final = [df2 stringFromDate:[df dateFromString:stringToFormat]]; 

你也必须区域设置为第一次约会的格式,让格式识别Octombrie作为有效的月份。

+0

是的。它的工作.Thx – Spartanu13

0

您在ticket.date中收到的格式不是您在代码中给出的格式。 “DD MMMM YYYY” < ---这是你在你的代码给了格式,但可能不是你所接收ticket.date

2

请使用此格式的机票dd.MMMM格式。 YYYY HH:MM在你的代码

NSString *stringToFormat = ticket.date; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"dd.MMMM.yyyy hh:mm"];//16.Octombrie.2015 10:02 
df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; 

NSDateFormatter *localDF = [NSDateFormatter new]; 
localDF.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; 
[localDF setDateFormat:@"dd.MM.yyyy"]; 

NSString *final = [localDF stringFromDate:[df dateFromString:stringToFormat]]; 
+0

无法正常工作。仍然没有 – Spartanu13

+0

@ Spartanu13现在请看我编辑的答案。它为我工作很好。 –

+0

对我来说它不工作:( – Spartanu13