NSDate和NSString相互转换

在日常的开发中经常需要NSDate类型时间与NSString字符串类型时间进行相互转换,整理了一下NSDateFormatter 格式化参数,以及写了一个NSDate的分类方便在开发中使用。

NSDateFormatter 格式化参数如下:

 G: 公元时代,例如AD元年

 yy: 年的后两位

 yyyy: 完整年

 MM: ,显示1~12

 MMM: ,显示为英文月份简写, Jan

 MMMM: ,显示为英文月份简写, Janualy

 dd: ,显示2为数, 04

 d: , 1-2位显示, 4

 EEE: 简写星期几, Sun

 EEEE: 全写星期几, Sunday

 aa: 上下午, AM/PM

 H: , 1-2位显示, 24小时制, 0~23

 HH: , 2位显示, 24小时制, 00~23

 K: , 1-2位显示, 12小时制, 0~12

 KK: , 2位显示, 12小时制, 00~12

 m: , 1-2位显示, 0~59

 mm: , 2为显示, 00~59

 s: , 1-2位显示, 0~59

 ss: , 2为显示, 00~59

 S: 毫秒, 1-3为显示, 0~999

 SSS: 毫秒, 3位显示, 000~999

NSDate分类  NSDate (Addition)

NSDate+Addition.h 文件

#import <Foundation/Foundation.h>

@interface NSDate (Addition)

/**
 *  获取字符串类型时间, 时间格式: yyyyMMddHHmmss
 *
 *  @param date NSDate类型时间
 *
 *  @return 字符串类型时间
 */
+ (NSString *)stringFromDate:(NSDate *)date;
/**
 *  获取字符串类型时间
 *
 *  @param date   NSDate类型时间
 *  @param format 时间格式
 *
 *  @return 字符串类型时间
 */
+ (NSString *)stringFromDate:(NSDate *)date format:(NSString *)format;
/**
 *  字符串时间转化为NSDate时间, 字符串默认格式为:yyyyMMddHHmmss
 *
 *  @param string 字符串时间
 *
 *  @return NSDate时间
 */
+ (NSDate *)dateFromString:(NSString *)string;
/**
 *  字符串时间转化为NSDate时间
 *
 *  @param string 字符串时间
 *  @param format 时间格式
 *
 *  @return NSDate时间
 */
+ (NSDate *)dateFromString:(NSString *)string format:(NSString *)format;
/**
 *  获得给定日期的月份
 */
+ (NSString *)getMonthFromDate:(NSDate *)date;

/**
 *  获得给定日期的星期
 */
+ (NSString *)getWeekdayFromDate:(NSDate *)date;

@end

NSDate+Addition.m 文件

#import "NSDate+Addition.h"

@implementation NSDate (Addition)


+ (NSString *)stringFromDate:(NSDate *)date
{
    return [self stringFromDate:date format:nil];
}

+ (NSString *)stringFromDate:(NSDate *)date format:(NSString *)format
{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    if (!format) {
        format = @"yyyyMMddHHmmss";
    }
    
    fmt.dateFormat = format;
    
    return [fmt stringFromDate:date];
}


+ (NSDate *)dateFromString:(NSString *)string
{
    return [self dateFromString:string format:nil];
}

+ (NSDate *)dateFromString:(NSString *)string format:(NSString *)format
{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    if (!format) {
        format = @"yyyyMMddHHmmss";
    }
    
    return [fmt dateFromString:string];
}

+ (NSString *)getMonthFromDate:(NSDate *)date
{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"MMM";
    
    return [fmt stringFromDate:date];
}

+ (NSString *)getWeekdayFromDate:(NSDate *)date
{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"EEE";
    
    return [fmt stringFromDate:date];
}

@end


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值