iOS开发 判断日期是今天,昨天还是明天

本文介绍了一种通过字符串日期计算得出具体周几的方法,包括日期格式化、今天与明天的日期判断,以及使用NSCalendar类获取周几。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- (NSString*)weekdayStringFromDate:(NSString*)featureDate {
    
    <span style="color:#33cc00;">// 创建 格式 对象</span>
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
   <span style="color:#33cc00;"> // 设置 日期 格式 可以根据自己的需求 随时调整, 否则计算的结果可能为 nil</span>
    formatter.dateFormat = @"yyyy-MM-dd HH-mm-ss";
    <span style="color:#33cc00;">// 将字符串日期 转换为 NSDate 类型</span>
    NSDate *inputDate = [formatter dateFromString:featureDate];
    <span style="color:#33cc00;">// 生成今天日期时间</span>
    NSTimeInterval secondsPerDay = 24 * 60 * 60;
    NSDate *today = [[NSDate alloc] init];
    NSDate *tomorrow, *yesterday;
    
    tomorrow = [today dateByAddingTimeInterval: secondsPerDay];
    yesterday = [today dateByAddingTimeInterval: -secondsPerDay];
    
    <span style="color:#33cc00;">// 10 first characters of description is the calendar date:</span>
    NSString * todayString = [[today description] substringToIndex:10];
    NSString * yesterdayString = [[yesterday description] substringToIndex:10];
    <span style="color:#33cc00;">//根据返回日期判断是否是今天还是昨天</span>
    NSString * dateString = [[inputDate description] substringToIndex:10];

    if ([dateString isEqualToString:todayString])
    {
        return @"今天";
    } else if ([dateString isEqualToString:yesterdayString])
    {
        return @"昨天";
    }
   <span style="color:#33cc00;"> //剩下的返回星期几就行了</span>
    NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"周日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
    
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    
    NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
    
    [calendar setTimeZone: timeZone];
    
    NSCalendarUnit calendarUnit = NSWeekdayCalendarUnit;
    
    NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate];
    
    return [weekdays objectAtIndex:theComponents.weekday];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值