web-dev-qa-db-fra.com

Obtenir l'heure actuelle dans la chaîne au format personnalisé dans l'objectif c

Je veux l'heure actuelle au format suivant dans une chaîne.

jj-mm-aaaa HH: MM

Comment?

55
Sagar R. Kothari

Vous voulez un formateur de date . Voici un exemple:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];

NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
136
Carl Norum

Soit utiliser NSDateFormatter comme Carl l'a dit, soit simplement utiliser le bon vieux strftime, qui est également parfaitement valide Objective-C:

#import <time.h>
time_t currentTime = time(NULL);
struct tm timeStruct;
localtime_r(&currentTime, &timeStruct);
char buffer[20];
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct);
15
Stephen Canon

Voici une solution simple:

- (NSString *)stringWithDate:(NSDate *)date
{
  return [NSDateFormatter localizedStringFromDate:date
                                        dateStyle:NSDateFormatterMediumStyle
                                        timeStyle:NSDateFormatterNoStyle];
}

Modifiez dateStyle et timeStyle pour correspondre à vos exigences de formatage.

8
Zorayr

Peut-être que ce sera plus lisible:

    NSDateFormatter *date = [[NSDateFormatter alloc] init];
    [date setDateFormat:@"HH:mm"];
    NSString *dateString = [date stringFromDate:[NSDate date]];
    [self.time setText:dateString];

Tout d'abord, nous créons un NSDateFormatter intégré dans obj-c avec le nom date , puis nous l'appliquons par [[NSDateFormatter alloc] init]; . Après cela, nous disons au processeur de code que nous voulons que notre date ait HOUR/MINUTE/SECOND. Enfin, nous devons faire de notre date une chaîne pour travailler avec une alerte ou définir la valeur d'une étiquette, pour ce faire, nous devons créer une chaîne avec la méthode NSString, puis nous utilisons ceci: [date stringFromDate: [date NSDate]]

Aie du plaisir avec ça .

3
AmirHossein