objective-c - ios 如何获取当天6点的时间戳
PHP中文网
PHP中文网 2017-04-17 17:58:14
0
2
266

如题
如何获取当天某一时刻的时间戳呢?

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
黄舟
NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
[greCalendar setTimeZone: timeZone];

NSDateComponents *dateComponents = [greCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit  fromDate:[NSDate date]];

//  定义一个NSDateComponents对象,设置一个时间点
NSDateComponents *dateComponentsForDate = [[NSDateComponents alloc] init];
[dateComponentsForDate setDay:dateComponents.day];
[dateComponentsForDate setMonth:dateComponents.month];
[dateComponentsForDate setYear:dateComponents.year];
[dateComponentsForDate setHour:23];
[dateComponentsForDate setMinute:59];

NSDate *dateFromDateComponentsForDate = [greCalendar dateFromComponents:dateComponentsForDate];
return dateFromDateComponentsForDate;

Il s'agit d'obtenir 23 :59 minutes dans le fuseau horaire de Pékin du jour. Modifiez simplement l'heure que vous souhaitez obtenir. Pour l'horodatage, changez simplement le fuseau horaire en fuseau horaire zéro. Cela peut-il résoudre votre problème ?

Peter_Zhu

Bonjour, la méthode que vous avez mentionnée ne peut pas obtenir la date de 23h59 dans le fuseau horaire de Pékin du jour. Bien que vous ayez défini le fuseau horaire et réglé les heures et les minutes, vous ne pouvez toujours pas obtenir la date de 0 : 00 et 23h59 du jour. Date et heure des minutes, s'il y a un problème avec ma propre utilisation de votre code, veuillez le signaler, merci

La méthode que j'ai trouvée plus tard est la suivante : sans régler le fuseau horaire, réglez directement l'heure sur 8 heures, pour pouvoir obtenir

// 创建日历
NSCalendar *calendar = [NSCalendar currentCalendar];
    
    // 初始化日历组件
    NSDateComponents *dateComponents = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:[NSDate date]];
    
    [dateComponents setYear:dateComponents.year];
    [dateComponents setMonth:dateComponents.month];
    [dateComponents setDay:dateComponents.day];
    [dateComponents setHour:8];    // 设置为为8 时
    
    NSDate *timeDate = [calendar dateFromComponents:dateComponents];
    
    // 从0 点开始24 小时之后的时间
    NSDate *end = [timeDate dateByAddingTimeInterval:24 * 3600];
    
    WZLog(@"获取的时间为 = %@", timeDate);

Bonjour, votre méthode est correcte. Ce que j'ai dit n'affiche que l'heure correcte actuelle. Après l'avoir convertie en horodatage, elle n'est en fait pas correcte.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal