如何从标准时间获取日期和工作日

How to get date and weekday from standard time

我想从字符串中的这种 2017-01-01T23:33:09+0800 时间格式中知道星期几,这样我就可以比较当前日期并像昨天、今天、星期一等那样显示它。

NSString *myDateString = @"2017-01-11T23:33:09+0800";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; // you have to set your dateformatter according your requirement.
NSDate *date1 = [dateFormatter dateFromString:myDateString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:date1];

NSInteger weekday = [components weekday];
NSString *weekdayName = [dateFormatter weekdaySymbols][weekday - 1];

// here you get your date day like sunday , monday , etc.   
NSLog(@"%@ is a %@", myDateString, weekdayName);

// check for your date is today , yesterday or Tommorow.

NSCalendar *calender = [NSCalendar autoupdatingCurrentCalendar];
if ([calender isDateInToday:date1]) {
        NSLog(@"Today");
}
else if ([calender isDateInYesterday:date1])
{
        NSLog(@"Yesterday");
}else if([calender isDateInTomorrow:date1]){
        NSLog(@"Tommorow");
}

输出:

2017-01-11T23:33:09+0800 is a Wednesday
Yesterday

这是将 DateString 转换为 weekDay 的 swift 3.0 代码:

let myDateString = "2017-01-01T23:33:09+0800"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"
let date = dateFormatter.date(from: myDateString)!
let unitFlags = Set<Calendar.Component>([.weekday])
var components = Calendar.current.dateComponents(unitFlags, from: date)
let weekday = components.weekday!
let weekdayName = dateFormatter.weekdaySymbols[weekday - 1]
print("\(myDateString) is a \(weekdayName)")

输出: 2017-01-01T23:33:09+0800 是星期日

希望对您有所帮助。