iOS时间戳字符串NSdate转换demo

1 在项目中我们经常要做时间格式的转换,以下是我封装的NSDate+TimeCategory,希望帮助到大家。

#import <Foundation/Foundation.h>

@interface NSDate (TimeCategory)

/**
 *  字符串转NSDate
 *
 *  @param theTime 字符串时间
 *  @param format  转化格式 如yyyy-MM-dd HH:mm:ss,即2015-07-15 15:00:00
 *
 *  @return <#return value description#>
 */
+ (NSDate *)dateFromString:(NSString *)timeStr
                    format:(NSString *)format;

/**
 *  NSDate转时间戳
 *
 *  @param date 字符串时间
 *
 *  @return 返回时间戳
 */
+ (NSInteger)cTimestampFromDate:(NSDate *)date;

/**
 *  字符串转时间戳
 *
 *  @param theTime 字符串时间
 *  @param format  转化格式 如yyyy-MM-dd HH:mm:ss,即2015-07-15 15:00:00
 *
 *  @return 返回时间戳的字符串
 */
+(NSInteger)cTimestampFromString:(NSString *)timeStr
                          format:(NSString *)format;

/**
 *  时间戳转字符串
 *
 *  @param timeStamp 时间戳
 *  @param format    转化格式 如yyyy-MM-dd HH:mm:ss,即2015-07-15 15:00:00
 *
 *  @return 返回字符串格式时间
 */
+ (NSString *)dateStrFromCstampTime:(NSInteger)timeStamp
                     withDateFormat:(NSString *)format;

/**
 *  NSDate转字符串
 *
 *  @param date   NSDate时间
 *  @param format 转化格式 如yyyy-MM-dd HH:mm:ss,即2015-07-15 15:00:00
 *
 *  @return 返回字符串格式时间
 */
+ (NSString *)datestrFromDate:(NSDate *)date
               withDateFormat:(NSString *)format;
@end
#import "NSDate+TimeCategory.h"

static NSDateFormatter *dateFormatter;

@implementation NSDate (TimeCategory)

+(NSDateFormatter *)defaultFormatter
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        dateFormatter = [[NSDateFormatter alloc]init];
    });
    return dateFormatter;
}

+ (NSDate *)dateFromString:(NSString *)timeStr
                    format:(NSString *)format
{
    NSDateFormatter *dateFormatter = [NSDate defaultFormatter];
    [dateFormatter setDateFormat:format];
    NSDate *date = [dateFormatter dateFromString:timeStr];
    return date;
}

+ (NSInteger)cTimestampFromDate:(NSDate *)date
{
   return (long)[date timeIntervalSince1970];
}

+(NSInteger)cTimestampFromString:(NSString *)timeStr
                          format:(NSString *)format
{
    NSDate *date = [NSDate dateFromString:timeStr format:format];
    return [NSDate cTimestampFromDate:date];
}

+ (NSString *)dateStrFromCstampTime:(NSInteger)timeStamp
                  withDateFormat:(NSString *)format
{
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];
    return [NSDate datestrFromDate:date withDateFormat:format];
}

+ (NSString *)datestrFromDate:(NSDate *)date
               withDateFormat:(NSString *)format
{
    NSDateFormatter* dateFormat = [NSDate defaultFormatter];
    [dateFormat setDateFormat:format];
    return [dateFormat stringFromDate:date];
}

2调用

#import "NSDate+TimeCategory.h"

- (IBAction)strToDate:(id)sender {
    NSString *timeStr = @"2015-07-15 15:00:00";
    NSDate *date = [NSDate dateFromString:timeStr format:@"yyyy-MM-dd HH:mm:ss"];
    NSLog(@"字符串转NSDate:%@ -> %@",timeStr,date);
}
- (IBAction)dateToStamp:(id)sender {

    NSDate *date = [NSDate date];
    NSInteger stamp = [NSDate cTimestampFromDate:date];
    NSLog(@"NSDate转时间戳:%@ ->%ld",date,stamp);
}
- (IBAction)strToStamp:(id)sender {
    NSString *timeStr = @"2015-07-15 15:00:00";
    NSInteger stamp = [NSDate cTimestampFromString:timeStr format:@"yyyy-MM-dd HH:mm:ss"];
     NSLog(@"字符串转时间戳:%@ -> %ld",timeStr,stamp);
}
- (IBAction)stampToStr:(id)sender {
    NSInteger stamp = 1436943600;
    NSString *timeStr = [NSDate dateStrFromCstampTime:stamp withDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     NSLog(@"时间戳转字符串:%ld ->%@",stamp,timeStr);
}
- (IBAction)dateToStr:(id)sender {
    NSDate *date = [NSDate date];
    NSString *timeStr = [NSDate datestrFromDate:date withDateFormat:@"yyyy-MM-dd HH:mm:ss"];
   NSLog(@"NSDate转字符串:%@ ->%@",date,timeStr);
}

分别得到以下结果

2015-07-13 15:02:07.662 TimeDemo[2780:89582]
字符串转NSDate2015-07-15 15:00:00 -> 2015-07-15 07:00:00 +0000

2015-07-13 15:02:14.653 TimeDemo[2780:89582] NSDate转时间戳:2015-07-13
07:02:14 +0000 ->1436770934

2015-07-13 15:02:20.077 TimeDemo[2780:89582]
字符串转时间戳:2015-07-15 15:00:00 -> 1436943600

2015-07-13 15:02:22.957 TimeDemo[2780:89582]
时间戳转字符串:1436943600 ->2015-07-15 15:00:00

2015-07-13 15:02:25.901 TimeDemo[2780:89582] NSDate转字符串:2015-07-13
07:02:25 +0000 ->2015-07-13 15:02:25

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

时间: 2024-10-29 16:06:01

iOS时间戳字符串NSdate转换demo的相关文章

IOS --- 日期时间格式 转换

1.如何如何将一个字符串如" 20110826134106"装化为任意的日期时间格式,下面列举两种类型: NSString* string [email protected]"20110826134106"; NSDateFormatter*inputFormatter = [[[NSDateFormatter alloc] init]autorelease]; [inputFormattersetLocale:[[[NSLocale alloc] initWith

IOS-时间与字符串互相转换

有时会遇到这样的问题,需要把时间和时间戳互相转换 比如把当前时间转换成 "20140716155436"这样的格式 或者是把"20140716155436"转换成"2014-07-16 15:54:36" 首先来第一个: 当前时间转换成 "20140716155436"这样的格式 /////////////////////////////// //获取当前时间 NSDate * today = [NSDate date]; N

iOS_时间戳与日期转换(几分钟前)

mark for myself. 时间戳转时间的时候,经常会遇到要转换成几分钟前的类型.比如最新品论发表于"一分钟前"或者"十分钟前"等. 以下为自己开发过程中遇到的时间戳转换成该类型字符串和其他时间戳与日期转换的方法封装: #define mark - 时间 /** * 时间戳转成字符串 * * @param timestamp 时间戳 * * @return 格式化后的字符串 */ + (NSString *)timeFromTimestamp:(NSInteg

JAVA将数字字符串强制转换成整型变量----求参数之和实验代码

实验代码: package demo; public class CommandParameter {  /**  * @param args  */  public static void main(String[] args) {   // TODO Auto-generated method stub    int sum=0;                                                                             //设数值

LinuxUnix time时间戳的处理转换函数

Linux/Unix time时间戳的处理转换函数 linux下的时间函数 我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年.月.日.时.分.秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数. linux下存储时间常见的有两种存储方式: 一个是从1970年到现在经过了多少秒: 一个是用一个结构来分别存储年月日时分秒的. time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构struct timeval,它精确到微妙. str

时间和字符串的转换

1.常用的时间存储方式 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval精确到毫秒. 2)tm结构,这本质上是一个结构体,里面包含了各时间字段 struct tm { int tm_sec; /* seconds after the minute - [0,59] */ int tm_min; /* minutes after the hour - [0,59] */ int tm_hour

c/c++日期时间处理与字符串string转换

在c/c++实际问题的编程中,我们经常会用到日期与时间的格式,在算法运行中,通常将时间转化为int来进行计算,而处理输入输出的时候,日期时间的格式却是五花八门,以各种标点空格相连或者不加标点. 首先,在c中,是有一个标准的日期时间结构体的,在标准库wchar.h内,我们可以看到结构体tm的声明如下: 1 #ifndef _TM_DEFINED 2 struct tm { 3 int tm_sec; /* seconds after the minute - [0,59] */ 4 int tm_

iOS是否是电话号码判断Demo

//判断是否是电话号码 - (BOOL)isMobileNumber:(NSString *)mobileNum {     /**      * 手机号码      * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188      * 联通:130,131,132,152,155,156,185,186      * 电信:133,1349,153,180,189      */     NSString * MOBI

iOS 基础类解析 - NSDate

NSDate Class Reference Inherits from NSObject Conforms to NSCopying NSSecureCoding NSObject (NSObject) Framework /System/Library/Frameworks/Foundation.framework Availability Available in iOS 2.0 and later. Declared in NSDate.h Companion guides Date a