NSDate+OSS.m 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // NSDate+OSS.m
  3. // AliyunOSSSDK
  4. //
  5. // Created by huaixu on 2018/7/31.
  6. // Copyright © 2018年 aliyun. All rights reserved.
  7. //
  8. #import "NSDate+OSS.h"
  9. @implementation NSDate (OSS)
  10. NSString * const serverReturnDateFormat = @"EEE, dd MMM yyyy HH:mm:ss z";
  11. static NSTimeInterval _clockSkew = 0.0;
  12. + (void)oss_setClockSkew:(NSTimeInterval)clockSkew {
  13. @synchronized(self) {
  14. _clockSkew = clockSkew;
  15. }
  16. }
  17. + (NSDate *)oss_clockSkewFixedDate {
  18. NSTimeInterval skew = 0.0;
  19. @synchronized(self) {
  20. skew = _clockSkew;
  21. }
  22. return [[NSDate date] dateByAddingTimeInterval:(-1 * skew)];
  23. }
  24. + (NSDate *)oss_dateFromString:(NSString *)string {
  25. NSDateFormatter *dateFormatter = [NSDateFormatter new];
  26. dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
  27. dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
  28. dateFormatter.dateFormat = serverReturnDateFormat;
  29. return [dateFormatter dateFromString:string];
  30. }
  31. - (NSString *)oss_asStringValue {
  32. NSDateFormatter *dateFormatter = [NSDateFormatter new];
  33. dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
  34. dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
  35. dateFormatter.dateFormat = serverReturnDateFormat;
  36. return [dateFormatter stringFromDate:self];
  37. }
  38. @end