我想取一個日期字符串,並將它變成一個特定的NSDate(例如1981年7月1日),但我沒有看到和設置日期的方法。有誰知道如何做到這一點?也許將一個DateTime對象轉換爲NSDate?創建NSDate Monotouch
回答
你想看看NSDateFormatter類:)
您的代碼將是這個樣子。 。 。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *parsed = [formatter dateFromString:dateString];
小號
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);
}
複製這應該有助於
亞歷
最簡單的方法是從日期時間設置。
修訂:NSDate轉換運算符現在是顯式的,不再隱式了!我更新了下面的例子。
如果你看一下NSDate的原型,你會發現兩個運營商:
public static explicit operator NSDate(DateTime dt);
public static explicit operator DateTime(NSDate d);
這兩個會做轉換爲你。
NSDate與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 2013-03-15 20:27:43
'date = DateTime.SpecifyKind(nsDate,DateTimeKind.Unspecified);'這給我提供了不正確的日期 – 2014-11-03 07:04:38
這對我也很好。謝謝! – 2015-01-25 16:37:41
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. 從NSString創建NSDate。
- 2. NSDate創建內存泄漏
- 3. 使用NSDate創建事件
- 4. 從月,日,年創建NSDate
- 5. 創建空的NSDate對象
- 6. MonoTouch:無法創建PSTitleValueSpecifier
- 7. MonoTouch:無法創建DbParameterCollection?
- 8. Monotouch:創建旋轉圖像?
- 9. Monotouch - 創建自定義BackButton
- 10. 如何創建一個const的NSDate
- 11. 從NSDateComponents創建的NSDate關閉的
- 12. 用特定時間創建NSDate
- 13. 在給定時間創建NSDate
- 14. 從Unix時間戳創建NSDate
- 15. 創建NSDate的時區問題
- 16. iOS從Python的datetime.isoformat()輸出創建NSDate?
- 17. 根據時區創建NSDate對象
- 18. IOS:創建全屏'覆蓋'UIView(Monotouch)
- 19. MonoTouch綁定不創建部分類
- 20. 在Monotouch中創建協議/委託
- 21. 如何從.framework創建MonoTouch綁定
- 22. 如何在Monotouch中創建字體?
- 23. MonoTouch - 創建沒有Xib的UI
- 24. 通過iPhone上的monotouch創建PDF?
- 25. 如何在MonoTouch中用Xib創建UIView
- 26. 如何爲(^ Something)塊創建MonoTouch綁定?
- 27. 在MonoTouch中從NSDate(或DateTime)獲取NSDateComponents實例
- 28. 問題構建的NSDate
- 29. MonoTouch應用程序構建
- 30. 創建具有特定時區的NSDate對象
我會考慮設置使用NSDateFormatter的日期。 Monotouch不具備目標C的所有方法,但它看起來像是朝着正確方向邁出的一步。謝謝院長 – Bryan 2010-01-27 17:32:36
我從來沒有使用monotouch自己,但顯然NSDateFormatter在版本1.4.4中可用(http://monotouch.net/index.php?title=Releases/MonoTouch_1.4.4&highlight=NSDateFormatter)。 – deanWombourne 2010-01-27 17:47:16