简体   繁体   English

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

[英]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 :这是将 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)")

Output: 2017-01-01T23:33:09+0800 is a Sunday输出: 2017-01-01T23:33:09+0800 是星期天

Hope this helps you.希望这对你有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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