Pregunta

Cómo convertir una fecha gregoriana en la fecha hebreo equivalente? También informe a estos calendarios, ya que no estoy teniendo mucho conocimiento de estos.

¿Fue útil?

Solución

Hay una clase práctica llamada NSCalendar . Se crea una como esta:

NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendar * hebrew = [[NSCalendar alloc] initWithCalendarIdentifier:NSHebrewCalendar];

Una vez que tenga los objetos de agenda, puede usarlos para convertir una fecha en torno a diversas representaciones:

NSDate * date = [NSDate date];
NSDateComponents * components = [gregorian components:NSUIntegerMax fromDate:date];
NSDate * hebrewDate = [hebrew dateFromComponents:components];

NSLog(@"date: %@", date);
NSLog(@"hebrew: %@", hebrewDate);

En mi máquina, esta registros:

date: 2011-01-09 23:20:39 -0800
hebrew: 1751-09-25 23:20:39 -0800

Si desea convertir material a un formato más legible, se utiliza NSDateFormatter :

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setCalendar:gregorian]; //this is usually unnecessary; it's here for clarity

NSLog(@"date: %@", [formatter stringFromDate:date]);

[formatter setCalendar:hebrew];

NSLog(@"hebrew: %@", [formatter stringFromDate:hebrewDate]);
[formatter release];

Este registros:

date: January 9, 2011
hebrew: Tishri 9, 2011

Parece que NSDateFormatter está utilizando la fecha gregoriana, pero al menos tiene el nombre del mes derecha, derecha?

editar

En realidad, metí la pata. Si se acaba de establecer el calendario de la NSDateFormatter, usted no tiene que preocuparse acerca de la conversión de la fecha en absoluto. Ver:

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setCalendar:hebrew];

NSLog(@"hebrew: %@", [formatter stringFromDate:[NSDate date]]);
[formatter release];

Este registros:

hebrew: Shevat 4, 5771

Mucho mejor! El cacao es impresionante no?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top