2017-01-12 3 views
-1

Я хочу знать день недели из этого 2017-01-01T23:33:09+0800 формат времени, который у меня есть в строке, поэтому я могу сравнить текущую дату и показать ее как вчера, сегодня, в понедельник и т. Д.Как получить дату и будний день со стандартного времени

+0

Swift 2.0 ya 3.0? –

+0

Проверьте это. Может быть полезно http://stackoverflow.com/a/15962241/6271729 – Niharika

+0

все еще на объективе c –

ответ

0
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 
+0

может ли это быть «вчера в 22:30»? –

+0

[calender isDateInYesterday: date1] это условие возвращает только истину или ложь в качестве вашего вопроса, я даю вам идеальное решение @vishwasparashar –

+0

10:30 pm @vishwasparashar, как вы можете установить это как время исправления? –

0

Здесь скор 3.0 код для преобразования DateString в 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)") 

Выход: 2017-01-01T23: 33: 09 + 0800 является воскресенье

Надеются, что это помогает.

Смежные вопросы