iOS 获取当前时间 时间格式化

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSDate (Formatter)

- (NSDate *)zeroOfDate;
- (NSString *)formatDateString;

- (NSInteger)getYear;
- (NSInteger)getMonth;
- (NSInteger)getDay;

+ (NSString *)currentDateString;
+ (NSString *)formatDate:(NSString *)dateStr withFormatString:(NSString *)formatStr;

@end

NS_ASSUME_NONNULL_END
#import "NSDate+Formatter.h"

@implementation NSDate (Formatter)

//今天零点的时间
- (NSDate *)zeroOfDate {
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSUIntegerMax fromDate:self];
    components.hour = 0;
    components.minute = 0;
    components.second = 0;
    
    // components.nanosecond = 0 not available in iOS
    NSTimeInterval ts = (double)(int)[[calendar dateFromComponents:components] timeIntervalSince1970];
    return [NSDate dateWithTimeIntervalSince1970:ts];
}
- (NSString *)formatDateString {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSString *currentTimeString = [formatter stringFromDate:self];
    return currentTimeString;
}

//日期的年月日
- (NSInteger)getYear {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY"];
    NSString *currentTimeString = [formatter stringFromDate:self];
    return currentTimeString.integerValue;
}
- (NSInteger)getMonth {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"MM"];
    NSString *currentTimeString = [formatter stringFromDate:self];
    return currentTimeString.integerValue;
}
- (NSInteger)getDay {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"dd"];
    NSString *currentTimeString = [formatter stringFromDate:self];
    return currentTimeString.integerValue;
}


//当前时间
+ (NSString *)currentDateString {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSDate *datenow = [NSDate date];
    NSString *currentTimeString = [formatter stringFromDate:datenow];
    return currentTimeString;
}
//格式化时间
// in Mar 20, 2019 2:40:00 PM
// out 2019-01-01 00:00:00
+ (NSString *)formatDate:(NSString *)dateStr withFormatString:(NSString *)formatStr {
    NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MMM dd, yyyy hh:mm:ss aa"];
    [dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]];
    [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
    NSDate *date =[dateFormat dateFromString:dateStr];
    NSDateFormatter* dateFormat2 = [[NSDateFormatter alloc] init];
    //    2018-04-16 20:14:13 formatStr
    [dateFormat2 setDateFormat:formatStr];
    NSString *publishtimeStr = [dateFormat2 stringFromDate:date];
    return publishtimeStr;
}

@end

使用

    NSString *currentDateString = [NSDate currentDate];
    NSString *dateString = [NSDate formatDate:@"Mar 20, 2019 0:00:00 PM" withFormatString:@"yyyy-MM-dd hh:mm:ss"];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值