Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从标准时间获取日期和工作日_Ios_Objective C_Nsdate - Fatal编程技术网

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

Ios 如何从标准时间获取日期和工作日,ios,objective-c,nsdate,Ios,Objective C,Nsdate,我想通过字符串中的时间格式知道工作日,这样我就可以比较当前日期并像昨天、今天、星期一一样显示它 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

我想通过字符串中的时间格式知道工作日,这样我就可以比较当前日期并像昨天、今天、星期一一样显示它

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转换为
工作日的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)")
让myDateString=“2017-01-01T23:33:09+0800”
让dateFormatter=dateFormatter()
dateFormatter.dateFormat=“yyyy-MM-dd'T'HH:MM:ssZZZ”
让date=dateFormatter.date(from:myDateString)!
让unitFlags=Set([.weekday])
var components=Calendar.current.dateComponents(unitFlags,from:date)
让weekday=components.weekday!
让weekdayName=dateFormatter.weekdaySymbols[weekday-1]
打印(“\(myDateString)是一个\(weekdayName)”)
输出: 2017-01-01T23:33:09+0800是星期天


希望这对您有所帮助。

Swift 2.0 ya 3.0?请检查此项。也许在客观上还是有帮助的c@vishwasparashar你需要解决方案吗?它能像“昨天晚上10:30”一样吗?[日历在昨天:日期1]这个条件只会返回true或false作为您的问题,我给您完美的解决方案@vishwasparashar10:30 pm@vishwasparashar如何设置这样的固定时间?我从一个数组中的服务器获取这些字符串,每个字符串有不同的时间,如果([Calendar IsDateinDate1:date1]){}条件,那么您必须在其他情况下执行此操作。你可以设置它。