NSDate+TimeCategory.m 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. //
  2. // NSDate+TimeCategory.m
  3. // XMEye
  4. //
  5. // Created by XM on 2017/3/2.
  6. // Copyright © 2017年 Megatron. All rights reserved.
  7. //
  8. #import "NSDate+TimeCategory.h"
  9. #import "Header.h"
  10. static NSDateFormatter *dateFormatter;
  11. @implementation NSDate (TimeCategory)
  12. +(NSDateFormatter *)defaultFormatter{
  13. static dispatch_once_t onceToken;
  14. dispatch_once(&onceToken, ^{
  15. dateFormatter = [[NSDateFormatter alloc]init];
  16. });
  17. return dateFormatter;
  18. }
  19. + (NSDate *)dateFromString:(NSString *)timeStr
  20. format:(NSString *)format{
  21. NSDateFormatter *dateFormatter = [NSDate defaultFormatter];
  22. [dateFormatter setDateFormat:format];
  23. NSDate *date = [dateFormatter dateFromString:timeStr];
  24. return date;
  25. }
  26. + (NSInteger)cTimestampFromDate:(NSDate *)date{
  27. return (long)[date timeIntervalSince1970];
  28. }
  29. +(NSInteger)cTimestampFromString:(NSString *)timeStr
  30. format:(NSString *)format{
  31. NSDate *date = [NSDate dateFromString:timeStr format:format];
  32. return [NSDate cTimestampFromDate:date];
  33. }
  34. + (NSString *)dateStrFromCstampTime:(NSInteger)timeStamp
  35. withDateFormat:(NSString *)format{
  36. NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];
  37. return [NSDate datestrFromDate:date withDateFormat:format];
  38. }
  39. + (NSString *)datestrFromDate:(NSDate *)date withDateFormat:(NSString *)format {
  40. NSDateFormatter* dateFormat = [NSDate defaultFormatter];
  41. [dateFormat setDateFormat:format];
  42. return [dateFormat stringFromDate:date];
  43. }
  44. //通过传入的时间提取出年月日
  45. + (int)getYearFormDate:(NSDate*)date{
  46. NSArray *array = [NSDate getDateAray:date];
  47. if (array!= nil && array.count==3) {
  48. return [[array objectAtIndex:0] intValue];
  49. }
  50. return 2017;
  51. }
  52. + (int)getMonthFormDate:(NSDate*)date{
  53. NSArray *array = [NSDate getDateAray:date];
  54. if (array!= nil && array.count==3) {
  55. return [[array objectAtIndex:1] intValue];
  56. }
  57. return 1;
  58. }
  59. + (int)getDayFormDate:(NSDate*)date{
  60. NSArray *array = [NSDate getDateAray:date];
  61. if (array!= nil && array.count==3) {
  62. return [[array objectAtIndex:2] intValue];
  63. }
  64. return 1;
  65. }
  66. + (int)getHourFormDate:(NSDate*)date {
  67. NSArray *array = [NSDate getTimeAray:date];
  68. if (array!= nil && array.count==3) {
  69. return [[array objectAtIndex:0] intValue];
  70. }
  71. return 0;
  72. }
  73. + (int)getMinuteFormDate:(NSDate*)date {
  74. NSArray *array = [NSDate getTimeAray:date];
  75. if (array!= nil && array.count==3) {
  76. return [[array objectAtIndex:1] intValue];
  77. }
  78. return 0;
  79. }
  80. + (int)getSecondFormDate:(NSDate*)date {
  81. NSArray *array = [NSDate getTimeAray:date];
  82. if (array!= nil && array.count==3) {
  83. return [[array objectAtIndex:2] intValue];
  84. }
  85. return 0;
  86. }
  87. +(NSArray*)getDateAray:(NSDate*)date{
  88. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  89. [dateFormatter setDateFormat:DateFormatter];
  90. NSString *dateString = [dateFormatter stringFromDate:date];
  91. NSArray *array = [dateString componentsSeparatedByString:@"-"];
  92. if (array == nil || array.count <3) {
  93. array = [NSArray arrayWithObjects:@"2017",@"1",@"1", nil];
  94. }
  95. return array;
  96. }
  97. +(NSArray*)getTimeAray:(NSDate*)date{
  98. NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  99. [dateFormatter setDateFormat:TimeFormatter2];
  100. NSString *dateString = [dateFormatter stringFromDate:date];
  101. NSArray *array = [dateString componentsSeparatedByString:@":"];
  102. if (array == nil || array.count <3) {
  103. array = [NSArray arrayWithObjects:@"0",@"0",@"0", nil];
  104. }
  105. return array;
  106. }
  107. //NSDate日期比较,是否是同一天,同一月,同一年
  108. + (BOOL)checkDate:(NSDate*)date1 WithDate:(NSDate*)date2{
  109. NSCalendar *calendar = [NSCalendar currentCalendar];
  110. unsigned unitFlag = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
  111. NSDateComponents *comp1 = [calendar components:unitFlag fromDate:date1];
  112. NSDateComponents *comp2 = [calendar components:unitFlag fromDate:date2];
  113. return (([comp1 day] == [comp2 day]) && ([comp1 month] == [comp2 month]) && ([comp1 year] == [comp2 year]));
  114. }
  115. //获取从1970年到现在的时间数
  116. - (double)getCurrentDateInterval{
  117. NSDate *senddate = [NSDate dateWithTimeIntervalSinceNow:0];
  118. NSTimeInterval index = [senddate timeIntervalSince1970] * 1000; //毫秒
  119. return index;
  120. }
  121. @end