NSDate not converting properly to format only for 12:00 PM
<p>This is how I'm converting my date to appear on a uilabel:</p>

<p>In my view: </p>

<pre><code>self.label.text = [Utils stringFromDate:date format:@"a hh:mm"];
</code></pre>

<p>In Utils:</p>

<pre><code>+ (NSCalendar *)xCalendar {
return [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
}

+ (NSDateFormatter *)xDateFormatter {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.calendar = [Utils xCalendar];
return df;
}

+ (NSString *)stringFromDate:(NSDate *)date format:(NSString *)formatStr {
NSDateFormatter *df = [Utils xDateFormatter];
[df setDateFormat:formatStr];
return [df stringFromDate:date];
}
</code></pre>

<p>Now if the data is 11:00 AM, it is working properly. However, if the data is anything from 12:00 PM to 12:59 PM, the label will display 12:00 AM to 12:59 AM. 1:00 PM will work properly. Why is this happening?</p>