码迷,mamicode.com
首页 > 其他好文 > 详细

NSDate和NSString相互转换

时间:2015-08-12 23:42:04      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:ios   objective-c   

在日常的开发中经常需要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


版权声明:本文为博主原创文章,未经博主允许不得转载。

NSDate和NSString相互转换

标签:ios   objective-c   

原文地址:http://blog.csdn.net/u013794726/article/details/47207383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!