DateTimestamp.h
//
// DateTimestamp.h
// WMBTC
//
// Created by 智创 on 2019/3/8.
// Copyright © 2019年 智创. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface DateTimestamp : NSObject
/**
获取当前时间戳有两种方法(以秒为单位)
@return 时间戳
*/
+(NSString *)getNowTimeTimestamp1;
/**
将某个时间转化成 时间戳(秒)
@param formatTime 时间
@param format 时间的格式
@return 时间c戳
*/
+(NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format;
/**
将某个 (秒)时间戳转化成 时间
注意:时间戳为13位时 为“毫秒”时间戳 为10位时为“秒”时间戳
@param timeString 时间
@return 时间
*/
+ (NSString *)timeWithTimeIntervalString:(NSString *)timeString andFormatter:(NSString *)format;
@end
NS_ASSUME_NONNULL_END
DateTimestamp.m
//
// DateTimestamp.m
// WMBTC
//
// Created by 智创 on 2019/3/8.
// Copyright © 2019年 智创. All rights reserved.
//
#import "DateTimestamp.h"
@implementation DateTimestamp
/**
获取当前时间戳有两种方法(以秒为单位) (包含时区的设置)
@return 时间戳
*/
+(NSString *)getNowTimeTimestamp{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
//设置时区,这个对于时间的处理有时很重要
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]];
return timeSp;
}
/**
将某个时间转化成 时间戳(秒)
@param formatTime 时间
@param format 时间的格式
@return 时间c戳
*/
+(NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
//(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate
//时间转时间戳的方法:
NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];
NSLog(@"将某个时间转化成 时间戳&&&&&&&timeSp:%ld",(long)timeSp); //时间戳的值
return timeSp;
}
/**
将某个 (秒)时间戳转化成 时间
注意:时间戳为13位时 为“毫秒”时间戳 为10位时为“秒”时间戳
@param timeString 时间
@return 时间
*/
+ (NSString *)timeWithTimeIntervalString:(NSString *)timeString andFormatter:(NSString *)format
{
// 格式化时间
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
//此时默认时间戳为秒来处理,即10位数的秒时间戳 如果为毫秒则除1000
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]];
// 如果时间戳为毫秒值转化为秒
// NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}
@end
网友评论