日付文字列を特定の NSDate (1981 年 7 月 1 日など) に変換しようとしていますが、日付を設定する方法がわかりません。これを達成する方法を知っている人はいますか?おそらく、DateTime オブジェクトを NSDate に変換しますか?
質問する
9427 次
5 に答える
25
最も簡単な方法は、DateTime から設定することです。
改訂: NSDate 変換演算子は明示的になり、暗黙的ではなくなりました! 以下の例を更新しました。
NSDate プロトタイプを見ると、次の 2 つの演算子が見つかります。
public static explicit operator NSDate(DateTime dt);
public static explicit operator DateTime(NSDate d);
この 2 つが変換を行います。
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);
于 2011-03-20T16:18:12.540 に答える
9
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);
}
これは役立つはずです
アレックス
于 2011-02-03T16:47:35.137 に答える
2
これを試して:
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);
}
于 2016-07-03T18:24:17.557 に答える
-2
NSDateFormatterクラスを見たい:)
コードは次のようになります。. .
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *parsed = [formatter dateFromString:dateString];
S
PS例は、この質問から自由にコピーされました:)
于 2010-01-27T17:22:40.697 に答える