#pragma mark - 獲取時間戳胎署、簽名和用戶ID
- (void)getTimestampAndSignAndUsers_ID
{
[self getTimestamp];
NSString *tempString = [StartSign stringByAppendingFormat:@"%@", timestampStr];
NSString *endSignString = [MBTipClass md5HexDigest:tempString];
// 轉化為大寫
signStr = [endSignString uppercaseString];
}
#pragma mark - 獲取當前時間
- (void)getTimestamp
{
#if 1
NSDate *date = [NSDate date];
NSTimeInterval time = [date timeIntervalSince1970];
NSString *timeStr = [NSString stringWithFormat:@"%.0f", time];
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
NSInteger interval = [zone secondsFromGMTForDate:date];
NSDate *localeDate = [date dateByAddingTimeInterval:interval];
NSTimeInterval time1 = [localeDate timeIntervalSince1970];
__unused NSString *timeStr1 = [NSString stringWithFormat:@"%.0f", time1];
timestampStr = timeStr;
#endif
#if 0
NSDate *now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc]init];//時間戳格式化
df.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 格式化年月日庐舟,時分秒
df.timeZone = [NSTimeZone systemTimeZone];//系統(tǒng)所在時區(qū)
NSString *systemTimeZoneStr = [df stringFromDate:now];
df.timeZone = [NSTimeZone defaultTimeZone];//默認時區(qū)挺物,貌似和上一個沒什么區(qū)別
NSString *defaultTimeZoneStr = [df stringFromDate:now];
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];//直接指定時區(qū)
NSString *plus8TZStr = [df stringFromDate:now];
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:-4*3600];//這就是GMT+0時區(qū)了
NSString *gmtTZStr = [df stringFromDate: now];
NSLog(@"Test Time\nSys:%@\nDefault:%@\n+8:%@\nGMT:%@",systemTimeZoneStr,defaultTimeZoneStr,plus8TZStr,gmtTZStr);
NSDate *date = [df dateFromString:systemTimeZoneStr];
timestampStr = [NSString stringWithFormat:@"%.0f", [date timeIntervalSince1970]];
#endif
}
E3814A59-420E-48D5-9E38-7317F941ABBF.png
解決上述類似問題:
B3BBE0BE-EE7B-47D6-814B-CE8B417B52A7.png