Comment puis-je obtenir un objet NSDate aujourd'hui à minuit?
Quel est le moyen le plus efficace pour obtenir un objet NSDate qui représente minuit de la journée en cours?
Vous devez vous connecter pour publier un commentaire.
Quel est le moyen le plus efficace pour obtenir un objet NSDate qui représente minuit de la journée en cours?
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
2013-08-22 10:05:45 +0000
est retourne2013-08-21 22:00:00 +0000
. Ensuite, j'ai utiliséNSDateComponents
et ont envoyersetHour
,setMinute
etsetHour
avec 0 et toujours pas bon.NSLog(@"%@", date);
oùdate
est NSDate objet.[calendar setTimeZone:[NSTimeZone systemTimeZone]];
.NSLog(@"%@", date);
est l'envoi d'un-description
message qui est fondamentalement la même queNSLog
ging dans la console. Si vous demandez la date de sonNSHourCalendarUnit
vous verrez que c'est un minuit de la date.Nouvelle API d'iOS 8
iOS 8 comprend une nouvelle méthode sur NSCalendar appelé startOfDayForDate, qui est très facile à utiliser:
D'Apple description:
Mise à jour, concernant les fuseaux horaires:
Depuis startOfDayForDate est une méthode de NSCalendar, il utilise le NSCalendar du fuseau horaire. Donc, si je voulais voir quelle heure il était à New York, où aujourd'hui a commencé à Los Angeles, je pourrais faire ceci:
Si vous voulez dire de minuit à 23:59, puis configurer le composant de l'heure 23 minutes et 59.
Vous pouvez utiliser la méthode suivante pour obtenir le minuit de la valeur pour un NSDate.
Thkis est pris d'ici site web.
Swift:
Swift 2.2:
Objective-C:
De iOS8, vous pouvez utiliser startDayForDate.
Donc, pour obtenir le départ d'aujourd'hui (Objective-C):
essayez ceci:
Vous pouvez utiliser NSCalendar's
dateBySettingHour:minute:second:ofDate:options:
De sorte qu'il serait aussi facile que de faire: