2010-09-02 13 views
3

Tous,UIDatePicker: Mode temps: initialiser le temps (dois être simple)

Cela semble être une chose simple, mais je ne peux pas trouver * la bonne méthode pour créer un UIDatePicker, en mode temps, et avoir initialisé à un moment précis. Je ne veux pas de date - juste le temps (pensez réveil). J'ai créé un objet NSDate:

NSDate * date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) delta]; 
pickerView = [[UIDatePicker alloc] init]; // which should be 'now' right? 
pickerView.datePickerMode = UIDatePickerModeTime; // which creates just the clock 
[pickerView setDate:date]; 

et dans la première ligne, l'intervalle (delta) est zéro. Il affiche 19h00.

Cela doit être si simple que je l'ai manqué, mais je ne peux pas trouver le bon chemin - quelqu'un?

Merci d'avance!

: pb:..

* Oui, j'ai regardé, mais apparemment pas dans les bons endroits :(

Répondre

0

Prenez le fuseau horaire en compte Vous obtenez 00 heures que si vous êtes à UTC

+0

Merci pour la réponse! J'ai défini le fuseau horaire à la fois par défaut et le fuseau horaire réel. Puisque c'est dans le simulateur d'iPhone, l'emplacement se croit être la Californie. La question * real *, je suppose, est si je veux initialiser l'heure de DatePicker à: 7:14 AM - comment puis-je? Tout ce que je veux en sortir est la valeur après qu'elle a été changée, par exemple, 07h20. Est-ce même le bon widget à utiliser? –

+0

pour régler l'heure [pickerView setDate: date]; est correct, il vous suffit de définir une date au bon moment. Pour obtenir la date sélectionnée, faites simplement [pickerView date] et récupérez l'heure à partir de la date. – Daniel

0

Merci dkk - J'apprécie votre aide.La réponse réelle était de ne pas utiliser un DatePicker, mais d'utiliser un PickerView (sans la date) .Cela a rendu les choses plus simples et plus faisables Merci encore

0
NSDate *date = [NSDate date]; 
date = [[NSCalendar autoupdatingCurrentCalendar] dateFromComponents:[[NSCalendar autoupdatingCurrentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]]; 
date = [date dateByAddingTimeInterval:60 * 60 * 21]; 

pickerView.date = date; 

Les étapes ici à la date sont

  • date Initialiser avec la date actuelle
  • obtenir la date à minuit
  • ajouter un intervalle de temps à la date (60 secondes * 60 minutes * heure). Dans ce cas, 21 = 21 heures

Cela fonctionne pour UIDatePicker avec datePickerMode de UIDatePickerModeTime & UIDatePickerModeCountDownTimer