123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- //
- // NSDate+currentDate.m
- // RDSmartPlug
- //
- // Created by Rayson on 2020/5/28.
- // Copyright © 2020 RDIOT. All rights reserved.
- //
- #import "NSDate+currentDate.h"
- @implementation NSDate (currentDate)
- + (NSDate *)currentDate{
- NSDate *date = [NSDate date];// NSDate默认相对的时区是GMT, 即: 格林威治标准时间
-
- NSTimeZone *zone = [NSTimeZone systemTimeZone];
- NSTimeInterval interval = [zone secondsFromGMTForDate:date];
- NSDate *current = [date dateByAddingTimeInterval:interval];
- return current;
- }
- // 时间戳—>字符串时间
- + (NSString *)rds_timeStringFromTimestamp:(NSString *)timestamp{
- //时间戳转时间的方法
- NSDate *timeDate = [NSDate dateWithTimeIntervalSince1970:[timestamp integerValue]];
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- //[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];
- [dateFormatter setDateFormat:@"HH:mm:ss"];
- NSString *strTime = [dateFormatter stringFromDate:timeDate];
- return strTime;
- }
- + (NSString *)rds_timeStringFromNSDate:(NSDate *)date{
-
- if (date == nil) {
- return @"——";
- }
-
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
-
- if ([NSDate is12HourFormat]) {
- [dateFormatter setDateFormat:@"hh:mm a"];
- }else{
- [dateFormatter setDateFormat:@"HH:mm"];
- }
-
- NSString *strTime = [dateFormatter stringFromDate:date];
- return strTime;
- }
- + (NSString *)rds_getDayString{
- NSArray * arrWeek=[NSArray arrayWithObjects:@"星期日",@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六", nil];
- NSDate *date = [NSDate date];
- NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- NSDateComponents *comps = [[NSDateComponents alloc] init];
- NSInteger unitFlags = NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday;
- comps = [calendar components:unitFlags fromDate:date];
- int week = (int)[comps weekday];
- int month = (int)[comps month];
- int day = (int)[comps day];
-
- NSString *w = [arrWeek objectAtIndex:week-1];
- NSString *time = [NSString stringWithFormat:@"%d.%d %@", month,day,w];
- return time;
- }
- + (NSDate *)rds_dateFromTimeString:(NSString *)timeString{
-
- timeString = [NSString stringWithFormat:@"%@:00",timeString];
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- [dateFormatter setDateFormat:@"HH:mm:ss"];
- [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
- NSDate *date = [dateFormatter dateFromString:timeString];
- return date;
- }
- + (NSDate *)rds_dateFromTimestamp:(NSString *)timestamp{
- //时间戳转时间的方法
- NSDate *timeDate = [NSDate dateWithTimeIntervalSince1970:[timestamp integerValue]];
- return timeDate;
- }
- + (BOOL)isSameDay:(NSDate *)date1 date2:(NSDate *)date2{
-
- NSCalendar *calendar = [NSCalendar currentCalendar];
- calendar.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
- int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;
-
- //1.
- NSDateComponents *date1Cmps = [calendar components:unit fromDate:date1];
-
- //2.
- NSDateComponents *date2Cmps = [calendar components:unit fromDate:date2];
-
- BOOL resule = (date1Cmps.year == date2Cmps.year) && (date1Cmps.month == date2Cmps.month) && (date1Cmps.day == date2Cmps.day);
- return resule;
-
- }
- + (BOOL)isSameMinute:(NSDate *)date1 date2:(NSDate *)date2{
-
- NSCalendar *calendar = [NSCalendar currentCalendar];
- int unit = NSCalendarUnitHour | NSCalendarUnitMinute;
- calendar.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
- if (![NSDate isSameDay:date1 date2:date2]) {
- return NO;
- }
-
- //1.
- NSDateComponents *date1Cmps = [calendar components:unit fromDate:date1];
-
- //2.
- NSDateComponents *date2Cmps = [calendar components:unit fromDate:date2];
-
- return (date1Cmps.hour == date2Cmps.hour) && (date1Cmps.minute == date2Cmps.minute);
- }
- + (BOOL)isDateInToday:(NSDate *)date{
- if(!date) return NO;
- NSCalendar *calendar = [NSCalendar currentCalendar];
- calendar.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
- BOOL today = [calendar isDateInToday:date];
- return today;
- }
- + (NSString *)rds_getTimestamp:(NSDate *)date{
-
- int second = [date timeIntervalSince1970];
- NSString *timestamp = [NSString stringWithFormat:@"%d", second];
-
- return timestamp;
- }
- + (NSString *)rds_getZeroTime:(NSDate *)date{
-
- NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
- [greCalendar setTimeZone: timeZone];
- NSDateComponents *dateComponents = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
- // 定义一个NSDateComponents对象,设置一个时间点
- NSDateComponents *dateComponentsForDate = [[NSDateComponents alloc] init];
- [dateComponentsForDate setDay:dateComponents.day];
- [dateComponentsForDate setMonth:dateComponents.month];
- [dateComponentsForDate setYear:dateComponents.year];
- [dateComponentsForDate setHour:0];
- [dateComponentsForDate setMinute:0];
- [dateComponentsForDate setSecond:0];
- NSDate *resultDate = [greCalendar dateFromComponents:dateComponentsForDate];
-
- int second = [resultDate timeIntervalSince1970];
- NSString *timestamp = [NSString stringWithFormat:@"%d", second];
-
- return timestamp;
- }
- + (NSString *)rds_getEndTime:(NSDate *)date{
-
- NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
- [greCalendar setTimeZone: timeZone];
- NSDateComponents *dateComponents = [greCalendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
- // 定义一个NSDateComponents对象,设置一个时间点
- NSDateComponents *dateComponentsForDate = [[NSDateComponents alloc] init];
- [dateComponentsForDate setDay:dateComponents.day];
- [dateComponentsForDate setMonth:dateComponents.month];
- [dateComponentsForDate setYear:dateComponents.year];
- [dateComponentsForDate setHour:23];
- [dateComponentsForDate setMinute:59];
- [dateComponentsForDate setSecond:59];
- NSDate *resultDate = [greCalendar dateFromComponents:dateComponentsForDate];
-
- int second = [resultDate timeIntervalSince1970];
- NSString *timestamp = [NSString stringWithFormat:@"%d", second];
-
- return timestamp;
- }
- + (NSDate *)rds_firstDayOfMonth:(NSDate *)date{
-
-
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- NSDateComponents *componentsCurrentDate =[calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:date];
-
- NSDateComponents *componentsNewDate = [NSDateComponents new];
-
- componentsNewDate.year = componentsCurrentDate.year;
- componentsNewDate.month = componentsCurrentDate.month;
- componentsNewDate.day = 1;
-
- return [calendar dateFromComponents:componentsNewDate];
- }
- + (NSDate *)rds_lastDayOfMonth:(NSDate *)date{
-
- NSInteger lastDay = [NSDate countThisMonthDays:date];
-
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- NSDateComponents *componentsCurrentDate =[calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:date];
-
- NSDateComponents *componentsNewDate = [NSDateComponents new];
-
- componentsNewDate.year = componentsCurrentDate.year;
- componentsNewDate.month = componentsCurrentDate.month;
- componentsNewDate.day = lastDay;
-
- return [calendar dateFromComponents:componentsNewDate];
- }
- + (NSInteger)countThisMonthDays:(NSDate *)date{
- NSCalendar * calendar = [NSCalendar currentCalendar];
- if (isEmptyString(date)) {
- date = [NSDate date];
- }
- NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date];
- return range.length;
- }
- + (BOOL)is12HourFormat{
- NSString *formatStringForHours = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 locale:[NSLocale currentLocale]];
- NSRange containsA =[formatStringForHours rangeOfString:@"a"];
- BOOL hasAMPM =containsA.location != NSNotFound;
- return hasAMPM;
- }
- - (NSString *)rds_getMinute{
-
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:self];
- NSInteger hour = [components hour];
- NSInteger minute = [components minute];
-
- NSString *min = [NSString stringWithFormat:@"%ld", hour*60 + minute];
- return min;
- }
- + (NSString *)rds_getTimeStringFromMinute:(NSString *)min{
- int h = min.intValue/60;
- int m = min.intValue%60;
- NSString *time = [NSString stringWithFormat:@"%02d:%02d", h, m];
- return time;
- }
- @end
|