Consider this code:
  NSDateComponents *comps = [[NSDateComponents alloc] init];
  [comps setDay:2];
  [comps setMonth:6];
  [comps setYear:2016];
  NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
  NSDate *date = [gregorian dateFromComponents:comps];
If I print the date to console it is
2016-06-01 23:00:00 +0000
June 1, instead of June 2.
Is there a way to create the dates I want without iOS converting that to some crazy date?
 
     
    