[IOS] Eerste dag van de maand opvragen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xanion
  • Registratie: Augustus 2001
  • Laatst online: 12-03 21:20
Ik zit al een tijd te puzzelen ondertussen hoe ik de eerste dag van een maand als NSDate terug kan krijgen. Ik heb namelijk ergens een probleem met de tijdzone's maar het lukt me niet hierop te corrigeren.

Ik heb 2 methode's uitgedokterd:
C++:
1
2
3
4
NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"dd-mm-yyyy"];
NSDate *date=[formatter dateFromString:[NSString stringWithFormat:@"01-11-2012"];
NSLog(@"Datum %@", date );

en
C++:
1
2
3
4
5
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp];
NSLog(@"Datum %@", date );


En beiden leveren dus niet 01-11-2012 op, maar 2012-10-31 23:00:00
Ik heb een uur verschil dus. Wat vergeet ik of zie ik over het hoofd?

Ik heb dus een functie nodig waar een willekeurige datum ingaat en die me een datum teruggeeft met de eerste dag van die maand.

There are 10 types of people in the world: Those who understand binary, and those who don't. .


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Het eerste voorbeeld is fout omdat je formatstring verkeerd is (denk ik, geen ervaring met objective C, maar worden maanden niet met hoofdletter M aangegeven?).

In het tweede voorbeeld geef je date terug, maar noemt je variabele firstDayOfMonthDate ?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • Icephase
  • Registratie: Mei 2008
  • Laatst online: 12:03

Icephase

Alle generalisaties zijn FOUT!

Iets met GMT +1?

Acties:
  • 0 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 09:04

Acid_Burn

uhuh

boe2 schreef op maandag 19 november 2012 @ 08:04:
Het eerste voorbeeld is fout omdat je formatstring verkeerd is (denk ik, geen ervaring met objective C, maar worden maanden niet met hoofdletter M aangegeven?).
Inderdaad. 'm' is minuut. 'M' is maand.

en deze toevoegen:
C++:
1
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];


Helpt dat?

[ Voor 18% gewijzigd door Acid_Burn op 19-11-2012 09:12 ]

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


Acties:
  • 0 Henk 'm!

  • Xanion
  • Registratie: Augustus 2001
  • Laatst online: 12-03 21:20
Acid_Burn schreef op maandag 19 november 2012 @ 09:09:
[...]

Inderdaad. 'm' is minuut. 'M' is maand.

en deze toevoegen:
C++:
1
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];


Helpt dat?
You saved my day. Dat is inderdaad de goede. Bedankt!!!!

There are 10 types of people in the world: Those who understand binary, and those who don't. .