简体   繁体   中英

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");
}

Output :

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

Here is swift 3.0 code for converting DateString to weekDay :

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)")

Output: 2017-01-01T23:33:09+0800 is a Sunday

Hope this helps you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM