java时间戳求时间差_时间戳换算后,截取时间相差8小时的问题

本文介绍了一种将时间戳转换为特定格式的方法,重点在于如何仅获取时间的部分,去除日期部分,并解决了时区差异的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做工程的时候出现了一个问题:就是把我们平时常用的时间戳转换成时间格式,只需要后面的时间部分,不要年月日部分。。。

我的做法是先把时间戳转换成NSDate,再把NSDate转换成字符型,截取后面的时间部分,即可。如下:

//时间戳::

NSString* timeSp = @"7200";

NSDate *currentTime = [NSDate dateWithTimeIntervalSince1970:[timeSp intValue]];

NSLog(@"currentTime : %@", (NSString*)currentTime );

输出的结果是: currentTime : 1970-01-01 02:00:00 +0000

在把currentTime转换成NSString类型时候发现,他会多出8个小时。。因为我要做的是一个倒计时的东西,所以我做了以前的处理去掉8小时的时差

NSDate *currentTime = [NSDate dateWithTimeIntervalSinceReferenceDate:seconds];

NSLog(@"currentTime : %@", (NSString*)currentTime );

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

NSTimeZone *zone = [NSTimeZone systemTimeZone];

NSInteger interval = [zone secondsFromGMTForDate: currentTime];

NSDate *localeDate = [currentTime  dateByAddingTimeInterval: -interval];

NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

[dateFormatter setTimeZone:timeZone];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *strDate = [dateFormatter stringFromDate:localeDate];

NSArray* array =  [strDate componentsSeparatedByString:@" "];

NSLog(@"array === %@",array[1]);

NSLog(@"%@", strDate);

这只是我个人的一些做法,,,希望能帮助到遇到相同问题的童鞋。。一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值