zoukankan      html  css  js  c++  java
  • iOS中Date和NString的相互转换

    必须知道的内容

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

        yy: 年的后2位

        yyyy: 完整年

        MM: 月,显示为1-12

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

        MMMM: 月,显示为英文月份全称,如 Janualy

        dd: 日,2位数表示,如02

        d: 日,1-2位显示,如 2

        EEE: 简写星期几,如Sun

        EEEE: 全写星期几,如Sunday

        aa: 上下午,AM/PM(xcode8之前aa表示上下午,之后aa表示am/pm,官方代码看不到,做个提醒,如果你是xcode8之前的编辑器,最好把am/pm转成上下午做,网上有传tt可以代表am/pm,楼主亲测,无效)

        H: 时,24小时制,0-23

        K:时,12小时制,0-11

        m: 分,1-2位

        mm: 分,2位

        s: 秒,1-2位

        ss: 秒,2位

        S: 毫秒

    1.date转string

    NSDate *date=[NSDate date];
    
    NSLog(@"%@",date);//2015-11-20 00:37:40 +0000
    
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器
    
    dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss";//指定转date得日期格式化形式
    
    NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:24:04
    
     dateFormatter.dateFormat=@"yyyy-MM-dd";
    
    NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20
    
     dateFormatter.dateFormat=@"yyyy-MM-dd eeee aa HH:mm:ss";
    
     NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 Friday AM 08:30:28
    
    dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss z";
    
    NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:42:22 GMT+8
    

    其实date转string只需要根据格式来就可以了,但是string转date需要注意事项

    2.string转date

       

     NSString *dateStr=@"2012-5-4 4:34:23";
    
    dateFormatter.dateFormat=@"yyyy-mm-dd hh:mm:ss";
    

    //输出:2012-05-03 20:34:23 +0000

    /*

    转化的类型必须与dateFormat保持一致

    2012-->y

    5->m

    4->d

    */

    NSString *dateStr=@"2012-5-4 4:34:23";
    
    dateFormatter.dateFormat=@"yyyy-mm-dd "//后面的hh:mm:ss不写可以吗?答案不写不可以
    
    //dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss";//转化格式
    
     NSLog(@"%@",[dateFormatter dateFromString:dateStr]);
    

    这里写一个java代码改成OC的封装类

    DateService
    DateService.h文件:
    #import <Foundation/Foundation.h>
    #define  PATTERN_STANDARD08W  @"yyyyMMdd"
    #define  PATTERN_STANDARD12W  @"yyyyMMddHHmm"
    #define  PATTERN_STANDARD14W  @"yyyyMMddHHmmss"
    #define  PATTERN_STANDARD17W  @"yyyyMMddHHmmssSSS"
    #define  PATTERN_STANDARD10H  @"yyyy-MM-dd"
    #define  PATTERN_STANDARD16H  @"yyyy-MM-dd HH:mm"
    #define  PATTERN_STANDARD19H  @"yyyy-MM-dd HH:mm:ss"
    #define  PATTERN_STANDARD10X  @"yyyy/MM/dd"
    #define  PATTERN_STANDARD16X  @"yyyy/MM/dd HH:mm"
    #define  PATTERN_STANDARD19X  @"yyyy/MM/dd HH:mm:ss"
    #define  PATTERN_STANDARD20H  @"HH:mm"
    #define  PATTERN_STANDARD21H  @"HH"
    @interface DateService : NSObject
    
    /**
     给日期返回固定格式的字符串
     */
    +(NSString *)date2StringWithDate:(NSDate *)date pattern:(NSString *)pattern;
    /**
     给字符串返回日期
     */
    +(NSDate *)string2DateWithString:(NSString *)strDate pattern:(NSString *)pattern;
    /**
     获取指定格式的当前日期
     */
    +(NSString *)getCurrentTimeWithPattern:(NSString *)pattern;
    /**
     获取当前时间 mm:ss
     */
    +(NSString *)getCurrentTime;
    /**
     获取当前时间过后多少秒
     */
    +(NSString *)getBeforeDateWithM:(double)m;
    @end
    

     .m

    #import "DateService.h"
    
    @implementation DateService
    +(NSString *)date2StringWithDate:(NSDate *)date pattern:(NSString *)pattern{
        if(!date){
            return @"";
        }
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        formatter.dateFormat = pattern;
        return  [formatter stringFromDate:date];
        
    }
    +(NSDate *)string2DateWithString:(NSString *)strDate pattern:(NSString *)pattern{
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        formatter.dateFormat = pattern;
        return  [formatter dateFromString:strDate];
    }
    +(NSString *)getCurrentTimeWithPattern:(NSString *)pattern{
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        formatter.dateFormat = pattern;
        formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];
        return  [formatter stringFromDate:[NSDate date]];
        
    }
    +(NSString *)getCurrentTime{
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        formatter.dateFormat = @"HH:mm";
        formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];
        return  [formatter stringFromDate:[NSDate date]];
    }
    +(NSString *)getBeforeDateWithM:(double)m{
        NSDate *date = [NSDate dateWithTimeIntervalSinceNow:m];
        return [self date2StringWithDate:date pattern:PATTERN_STANDARD10H];;
    }
    @end
    
      func setTakeCarTime(){
            let dateFormatter = DateFormatter()
            dateFormatter.weekdaySymbols = ["(周日)", "(周一)", "(周二)", "(周三)", "(周四)", "(周五)", "(周六)"]
            dateFormatter.dateFormat = "yyyy-MM-dd eeee HH:mm"
            dateFormatter.timeZone = NSTimeZone.local
    
            backCarTimeLab.text = dateFormatter.string(from: Date())
            
            
        }
    
  • 相关阅读:
    Linux监控平台、安装zabbix、修改zabbix的admin密码
    LVS DR模式搭建、keepalived+lvs
    负载均衡集群相关、LVS介绍、LVS调度算法、LVS NAT模式搭建
    集群相关、用keepalived配置高可用集群
    mysql基础
    MySQL主从、环境搭建、主从配制
    Tomcat配置虚拟主机、tomcat的日志
    Tomcat介绍、安装jdk、安装Tomcat、配置Tomcat监听80端口
    FTP相关、用vsftpd搭建ftp、xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
    HTTP Status 500
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/4979693.html
Copyright © 2011-2022 走看看