Estoy tratando de tomar una cadena de fecha y convertirla en un NSDate específico (por ejemplo, el 1 de julio de 1981), pero no veo ni los métodos para establecer la fecha. ¿Alguien sabe cómo lograr esto? ¿Quizás convierta un objeto DateTime a NSDate?Crear NSDate Monotouch
Respuesta
que desea buscar en la clase NSDateFormatter :)
Su código se verá algo como esto. . .
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *parsed = [formatter dateFromString:dateString];
S
PS Ejemplo copiado libremente de this question :)
public static DateTime NSDateToDateTime(MonoTouch.Foundation.NSDate date)
{
return (new DateTime(2001,1,1,0,0,0)).AddSeconds(date.SecondsSinceReferenceDate);
}
public static MonoTouch.Foundation.NSDate DateTimeToNSDate(DateTime date)
{
return MonoTouch.Foundation.NSDate.FromTimeIntervalSinceReferenceDate((date-(new DateTime(2001,1,1,0,0,0))).TotalSeconds);
}
Esto debería ayudar
Alex
La forma más fácil es para configurarlo de DateTime.
REVISIÓN: ¡Los operadores de conversión de NSDate ahora son explícitos, no implícitos! Actualicé el ejemplo a continuación.
Si nos fijamos en el prototipo NSDate se encuentran dos operadores:
public static explicit operator NSDate(DateTime dt);
public static explicit operator DateTime(NSDate d);
Estos dos hacer la conversión para usted.
La conversión explícita de NSDate hacia y desde DateTime es bastante buena, pero debe tener en cuenta que NSDate siempre es una hora UTC y DateTime se establece por defecto en DateTimeKind.Unspecified (cuando se lee desde la base de datos) o DateTimeKind.Locale (cuando se establece con DateTime.Today). La mejor manera de convertir sin complicados cálculos de zona horaria es forzar al DateTimeKind derecha:
// Set NSDate:
DateTime date = DateTime.Parse("1981-07-01")
NSDate nsDate = (NSDate)DateTime.SpecifyKind(date, DateTimeKind.Utc);
// Get DateTime from NSDate:
date = DateTime.SpecifyKind((DateTime)nsDate, DateTimeKind.Unspecified);
Recomendaría agregar una de las siguientes líneas para asegurarse de que su conversión correctamente 'date = date.ToLocalTime();' funcionó a la perfección para mí, además de lo que has mencionado. Gracias por la guía. – BRogers
'date = DateTime.SpecifyKind (nsDate, DateTimeKind.Unspecified);' Esto para mí da la fecha incorrecta –
Esto funcionó muy bien para mí también. ¡Gracias! –
public NSDate ConvertDateTimeToNSDate(DateTime date)
{
DateTime newDate = TimeZone.CurrentTimeZone.ToLocalTime(
new DateTime(2001, 1, 1, 0, 0, 0));
return NSDate.FromTimeIntervalSinceReferenceDate(
(date - newDate).TotalSeconds);
}
public DateTime ConvertNsDateToDateTime(NSDate date)
{
DateTime newDate = TimeZone.CurrentTimeZone.ToLocalTime(
new DateTime(2001, 1, 1, 0, 0, 0));
return newDate.AddSeconds(date.SecondsSinceReferenceDate);
}
Fuente: https://theweeklybyte.wordpress.com/2014/05/27/convert-datetime-to-nsdate-and-back/
Prueba esto:
private static NSDate DateTimeToNSDate(DateTime date)
{
NSCalendar calendar = NSCalendar.CurrentCalendar;
NSDateComponents comps = new NSDateComponents();
comps.Day = date.Day;
comps.Month = date.Month;
comps.Year = date.Year;
comps.Minute = date.Minute;
comps.Hour = date.Hour;
return calendar.DateFromComponents(comps);
}
- 1. Cómo crear un enlace MonoTouch desde .framework
- 2. crear un NSDate de una cadena
- 3. Crear un nuevo NSDate combinando dos NSDates
- 4. ¿Cómo crear un objeto de fecha NSDate?
- 5. Comparando un NSDate con [NSDate date]
- 6. MonoTouch: uncaughtExceptionHandler?
- 7. Notificaciones push Servicio utilizando monotouch
- 8. Obtener NSDate de NSDate ajustado con la zona horaria
- 9. ¿Convertir una descripción de NSDate en un NSDate?
- 10. MonoTouch: ¿Dónde está Frame.Origin?
- 11. ¿Biblioteca QR para MonoTouch?
- 12. ¿Cómo desinstalar MonoTouch framework?
- 13. MonoTouch y Xcode 4
- 14. MonoTouch OpenTK y UniformMatrix4
- 15. ¿Cómo funciona MonoTouch?
- 16. sizeWithFont con MonoTouch
- 17. PerformSelector Monotouch Threading
- 18. reproducir mp3 con monotouch
- 19. MonoTouch Uso NSData.FromBytes
- 20. MonoTouch WIFI SSID
- 21. Monotouch con Xcode 4
- 22. Monotouch Global Exception handling
- 23. MonoDevelop/MonoTouch #if iPHONE?
- 24. Cómo subclase UIApplication en Monotouch?
- 25. NSString a NSDate
- 26. NSDateComponents de un NSDate
- 27. Descripción Cadena de NSDate
- 28. UIDatePicker volver equivocada NSDate
- 29. NSDate, comparando dos fechas
- 30. Restar minutos de NSDate
Voy a mirar en entorno la fecha usando NSDateFormatter. Monotouch no tiene todos los métodos del objetivo C, pero parece un paso en la dirección correcta. Gracias Dean – Bryan
Nunca he usado monotouch, pero aparentemente NSDateFormatter está disponible en la versión 1.4.4 (http://monotouch.net/index.php?title=Releases/MonoTouch_1.4.4&highlight=NSDateFormatter). – deanWombourne