Я пытаюсь взять строку даты и превратить ее в определенный NSDate (например, 1 июля 1981 года), но я не вижу и методы для установки даты. Кто-нибудь знает, как это сделать? Возможно, преобразовать объект DateTime в NSDate?Создать NSDate Monotouch
ответ
Вы хотите посмотреть на NSDateFormatter класс :)
Ваш код будет выглядеть примерно так. , ,
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *parsed = [formatter dateFromString:dateString];
S
PS Пример свободно скопированы из 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);
}
Это должно помочь
Алекс
Самый простой способ, чтобы установить его из DateTime.
ПЕРЕСМОТР: Операторы преобразования NSDate теперь явны, а не подразумеваются больше! Я обновил приведенный ниже пример.
Если посмотреть на прототип NSDate вы найдете два оператора:
public static explicit operator NSDate(DateTime dt);
public static explicit operator DateTime(NSDate d);
Эти два будут делать преобразования для вас.
Явное преобразование NSDate в DateTime и из DateTime неплохое, но вы должны знать, что NSDate всегда является временем UTC, а для DateTime по умолчанию установлено значение DateTimeKind.Unspecified (при чтении из базы данных) или DateTimeKind.Locale (если установлено с DateTime.Today). Лучший способ для преобразования без сложных вычислений часовых поясов, чтобы заставить правильный DateTimeKind:
// 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);
Я бы порекомендовал добавить следующую строку, чтобы убедиться, что ваша конвертация правильно 'date = date.ToLocalTime();' отлично работает для меня в дополнение к тому, что вы упомянули. Спасибо за руководство. – BRogers
'date = DateTime.SpecifyKind (nsDate, DateTimeKind.Unspecified);' Это для меня дает неправильную дату –
Это отлично подойди для меня. Благодаря! –
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);
}
Источник: https://theweeklybyte.wordpress.com/2014/05/27/convert-datetime-to-nsdate-and-back/
Попробуйте это:
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. Monotouch: создать отражение изображения?
- 2. Создать кнопку программно monotouch
- 3. Monotouch - Создать пользовательский BackButton
- 4. создать NSDate из строки
- 5. создать пустой объект NSDate
- 6. Как создать константный NSDate
- 7. Создать собственный NSDate
- 8. Получение экземпляра NSDateComponents из NSDate (Or DateTime) в MonoTouch
- 9. MonoTouch: невозможно создать прокси WCF
- 10. Как создать шрифт в Monotouch?
- 11. Невозможно создать NSDate из строки
- 12. Создать NSDate с определенным временем
- 13. MonoTouch - создать пользовательский интерфейс без Xib
- 14. Как создать приложение XMPP с помощью Monotouch?
- 15. Как создать UIView с Xib в MonoTouch
- 16. MonoTouch Создать UIImage с закругленными углами
- 17. Как создать несколько таблиц уровней в Monotouch?
- 18. Создать Lite версию моего приложения с MonoTouch
- 19. Как создать проект MonoTouch с помощью mdtool
- 20. Как создать привязку MonoTouch из .framework
- 21. Как создать привязку MonoTouch для блока (^ Something)?
- 22. Objective C - создать NSDate из двух строк
- 23. Невозможно создать NSDate из NSString с датами
- 24. Создать NSDate со строковым временем с 1970
- 25. NSDate вчера
- 26. Сравнение NSDate с [NSDate date]
- 27. Преобразование описания NSDate в NSDate?
- 28. Swift NSDate и печать (NSDate)
- 29. NSDate Вопрос
- 30. Facebook api with monotouch
Я буду смотреть в настройки дату с использованием NSDateFormatter. У Monotouch нет всех методов объектива C, но он выглядит как шаг в правильном направлении. Спасибо Dean – Bryan
Я никогда не использовал monotouch самостоятельно, но, очевидно, NSDateFormatter доступен в версии 1.4.4 (http://monotouch.net/index.php?title=Releases/MonoTouch_1.4.4&highlight=NSDateFormatter). – deanWombourne