NSDate+Additions.m 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // NSDate+Additions.m
  3. // KHealth
  4. //
  5. //
  6. #import "NSDate+Additions.h"
  7. @implementation NSDate (Additions)
  8. +(NSDateFormatter *)dateFormatter2{
  9. static NSDateFormatter *dateFormatter2 = nil;
  10. if (dateFormatter2 == nil) {
  11. dateFormatter2 = [NSDateFormatter new];
  12. [dateFormatter2 setDateFormat:[NSString stringWithFormat:@"yyyy-MM-dd"]];
  13. [dateFormatter2 setLocale:[NSLocale currentLocale]];
  14. }
  15. return dateFormatter2;
  16. }
  17. -(NSString *)dateString{
  18. static NSDateFormatter *dateFormatter = nil;
  19. if (dateFormatter == nil) {
  20. dateFormatter = [NSDateFormatter new];
  21. [dateFormatter setDateFormat:[NSString stringWithFormat:@"yyyy.MM.dd"]];
  22. [dateFormatter setLocale:[NSLocale currentLocale]];
  23. }
  24. return [dateFormatter stringFromDate:self];
  25. }
  26. -(NSString *)dateString2{
  27. return [[NSDate dateFormatter2] stringFromDate:self];
  28. }
  29. -(NSString *)dateTimeString{
  30. static NSDateFormatter *dateTimeFormatter = nil;
  31. if (dateTimeFormatter == nil) {
  32. dateTimeFormatter = [NSDateFormatter new];
  33. [dateTimeFormatter setDateFormat:[NSString stringWithFormat:@"yyyy.MM.dd HH:mm"]];
  34. [dateTimeFormatter setLocale:[NSLocale currentLocale]];
  35. }
  36. return [dateTimeFormatter stringFromDate:self];
  37. }
  38. -(NSString *)dateTimeString2{
  39. static NSDateFormatter *dateTimeFormatter2 = nil;
  40. if (dateTimeFormatter2 == nil) {
  41. dateTimeFormatter2 = [NSDateFormatter new];
  42. [dateTimeFormatter2 setDateFormat:[NSString stringWithFormat:@"yyyy-MM-dd HH:mm"]];
  43. [dateTimeFormatter2 setLocale:[NSLocale currentLocale]];
  44. }
  45. return [dateTimeFormatter2 stringFromDate:self];
  46. }
  47. -(NSString *)shortDateString{
  48. static NSDateFormatter *shortDateFormatter = nil;
  49. if (shortDateFormatter == nil) {
  50. shortDateFormatter = [NSDateFormatter new];
  51. [shortDateFormatter setDateFormat:[NSString stringWithFormat:@"MM.dd"]];
  52. [shortDateFormatter setLocale:[NSLocale currentLocale]];
  53. }
  54. return [shortDateFormatter stringFromDate:self];
  55. }
  56. -(NSString *)shortDateTimeString{
  57. static NSDateFormatter *shortDatetimeFormatter = nil;
  58. if (shortDatetimeFormatter == nil) {
  59. shortDatetimeFormatter = [NSDateFormatter new];
  60. [shortDatetimeFormatter setDateFormat:[NSString stringWithFormat:@"M月d日 H:mm"]];
  61. [shortDatetimeFormatter setLocale:[NSLocale currentLocale]];
  62. }
  63. return [shortDatetimeFormatter stringFromDate:self];
  64. }
  65. -(NSString *)shortTimeString{
  66. static NSDateFormatter *shortTimeFormatter = nil;
  67. if (shortTimeFormatter == nil) {
  68. shortTimeFormatter = [NSDateFormatter new];
  69. [shortTimeFormatter setDateFormat:[NSString stringWithFormat:@"HH:mm"]];
  70. [shortTimeFormatter setLocale:[NSLocale currentLocale]];
  71. }
  72. return [shortTimeFormatter stringFromDate:self];
  73. }
  74. -(NSString *)longTimeString{
  75. static NSDateFormatter *longTimeFormatter = nil;
  76. if (longTimeFormatter == nil) {
  77. longTimeFormatter = [NSDateFormatter new];
  78. [longTimeFormatter setDateFormat:[NSString stringWithFormat:@"HH:mm:ss"]];
  79. [longTimeFormatter setLocale:[NSLocale currentLocale]];
  80. }
  81. return [longTimeFormatter stringFromDate:self];
  82. }
  83. -(long long)milseconds{
  84. NSTimeInterval timeInteval = [self timeIntervalSince1970]*1000;
  85. return [[NSNumber numberWithDouble:timeInteval] longLongValue];
  86. }
  87. +(NSDate *)dateFromYYYYMMDD:(NSString *)dateString{
  88. return [[self dateFormatter2] dateFromString:dateString];
  89. }
  90. +(NSDate *)dateWithYear:(int)year{
  91. NSCalendar *calendar = [NSCalendar currentCalendar];
  92. NSDateComponents *components = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
  93. [components setYear:year];
  94. return [calendar dateFromComponents:components];
  95. }
  96. + (NSString *) getTimeDiffString:(NSDate *) temp
  97. {
  98. NSCalendar *cal = [NSCalendar currentCalendar];
  99. NSDate *today = [NSDate date];//当前时间
  100. unsigned int unitFlag = NSDayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit;
  101. NSDateComponents *gap = [cal components:unitFlag fromDate:today toDate:temp options:0];//计算时间差
  102. if (ABS([gap day]) > 0)
  103. {
  104. return [NSString stringWithFormat:@"%@",[temp shortDateTimeString]];
  105. // return [NSString stringWithFormat:@"%d天前", ABS([gap day])];
  106. }else if(ABS([gap hour]) > 0)
  107. {
  108. return [NSString stringWithFormat:@"%d小时前", ABS([gap hour])];
  109. }else{
  110. if (ABS([gap minute])==0) {
  111. return [NSString stringWithFormat:@"刚刚"];
  112. }
  113. return [NSString stringWithFormat:@"%d分钟前", ABS([gap minute])];
  114. }
  115. }
  116. @end