将历元毫秒转换为 NSDate
Convert epoch milliseconds to NSDate
我想将自 1970 年 1 月 1 日以来经过的毫秒数转换为 NSDate 而不会丢失毫秒数。每个解决方案都表示将毫秒除以 1000 并使用 dateWithTimeIntervalSince1970。但我也想保持保留到毫秒。
dateWithTimeIntervalSince1970
的参数是 NSTimeInterval
,它不是整数值(它是 double
)。没有理由失去毫秒。执行除法时不要使用整数。
例如:
long long milliseconds = 1576058147753;
NSTimeInterval seconds = (NSTimeInterval)milliseconds / 1000.0;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocalizedDateFormatFromTemplate:@"dMMMMyyyyHHmmssSSS"];
December 11, 2019, 01:55:47.753
注意那里有 753 毫秒。
您可以在此获取日期 way.You 必须根据您的要求传递时间间隔和日期格式。
-(NSString *)getStringFromDate:(double)interval withFormat:(NSString*)format
{
if (interval == 0)
{
return @"";
}
double seconds = interval;
NSTimeInterval timeInterval = (NSTimeInterval)seconds;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter* df_utc = [[NSDateFormatter alloc] init];
[df_utc setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df_utc setDateFormat:format];
NSString *Date=[df_utc stringFromDate:date];
return Date;
}
希望对您有所帮助。
我想将自 1970 年 1 月 1 日以来经过的毫秒数转换为 NSDate 而不会丢失毫秒数。每个解决方案都表示将毫秒除以 1000 并使用 dateWithTimeIntervalSince1970。但我也想保持保留到毫秒。
dateWithTimeIntervalSince1970
的参数是 NSTimeInterval
,它不是整数值(它是 double
)。没有理由失去毫秒。执行除法时不要使用整数。
例如:
long long milliseconds = 1576058147753;
NSTimeInterval seconds = (NSTimeInterval)milliseconds / 1000.0;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocalizedDateFormatFromTemplate:@"dMMMMyyyyHHmmssSSS"];
December 11, 2019, 01:55:47.753
注意那里有 753 毫秒。
您可以在此获取日期 way.You 必须根据您的要求传递时间间隔和日期格式。
-(NSString *)getStringFromDate:(double)interval withFormat:(NSString*)format
{
if (interval == 0)
{
return @"";
}
double seconds = interval;
NSTimeInterval timeInterval = (NSTimeInterval)seconds;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter* df_utc = [[NSDateFormatter alloc] init];
[df_utc setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df_utc setDateFormat:format];
NSString *Date=[df_utc stringFromDate:date];
return Date;
}
希望对您有所帮助。