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
iOS中Date和NString的相互转换的更多相关文章
- iOS中date和string的相互转换
必须知道的内容 G: 公元时代,例如AD公元 yy: 年的后2位 yyyy: 完整年 MM: 月,显示为1-12 MMM: 月,显示为英文月份简写,如 Jan ...
- Java中Date与String的相互转换
我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需要一个日期类型,反过来,在页面上显示的时候,需要从数 ...
- Java8中 Date和LocalDateTime的相互转换
一.在Java 8中将Date转换为LocalDateTime 方法1: 将Date转换为LocalDatetime,我们可以使用以下方法: 1.从日期获取ZonedDateTime并使用其方法toL ...
- 谨记:new Date()在IOS中的坑
第一次遇到,记录一下 要创建一个指定时间的new Date对象时,通常的做法是: new Date("2018-04-27 11:11");然后就可以根据这个获取年月日等信息 这种 ...
- ios 中不new Date 的格式 不支持年月日 以‘-’ 分割的格式
new Date("2018-1-5") 在 ios 中显示 invalid date - 换做 / 则可以顺利显示 new Date("2018/1/5")
- java中XMLGregorianCalendar类型和Date类型之间的相互转换
import java.text.SimpleDateFormat;import java.util.Date;import java.util.GregorianCalendar;import ja ...
- ios中常见数据存储方式以及SQLite常用的语句
在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults 将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...
- iOS中JSONModel的使用
iOS中JSONModel的使用 流弊的JSON数据模型框架 https://github.com/jsonmodel/jsonmodel 版本 1.3.0 如果你喜欢JSONModel,并且使用 ...
- iOS中几种定时器
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. iOS中定时器NSTimer的使用 1.初始化 + (NSTimer ...
随机推荐
- DOM的学习
今天学习了DOM,感觉学习起来真的没那么简单啦,这不是一个好现象啊,只有依靠自己大补课,嘿嘿,具体的总结了一下,今天学习的其实并不多,仅仅学习了不同的节点类型,但是知识还是蛮碎的,要一点一点的总结,昨 ...
- 编写java的时候出现“编码GBK的不可映射字符”
今天在编写文件的时候,使用 javac ***.java 但是java文件里面会出现一些中文的信息,So:会报错 方法: 加参数-encoding UTF-8 例如:javac -encodig UT ...
- oracle URL参数获取
改函数主要是从URL中获取参数例如 sssss.html?cur=aaa&ref=cccc 调用方式:f_querystr(url,'cur','&'); CREATE OR REPL ...
- Hibernate系列之核心开发接口
一.概述 所有的hibernate应用中都会访问5个核心接口,它们分别是: Configuration:配置hibernate,创建SessionFactory对象 SessionFactory:初始 ...
- 线程同步之ManualResetEvent类的用法
笔者的一台激光测厚设备的软件, 它有一个运动线程, 一个激光数据处理线程. 运动线程做的事就是由A点移动到B点, 然后再由B点移动回A点. 激光处理线程要做的事就是采集指定数量点的激光数据, 随着采集 ...
- csdn博客刷点击率(java代码)
此文为转载,亲测有效. import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; impo ...
- iOS教程:Core Data数据持久性存储基础教程
目录[-] 创建Core Data工程 创建数据模型 测试我们的数据模型 来看看SQL语句的真面目 自动生成的模型文件 创建一个表视图 之后看些什么? 就像我一直说的,Core Data是iOS编程, ...
- yii的安装
1.安装composer windows系统直接下载Composer-Setup.exe 运行安装. 2.安装Composer asset plugin composer安装完成后,在一个可通过web ...
- vue--环境搭建(创建运行项目)
如何搭建vue环境: 1.安装之前必须要安装 node.js 2.搭建Vue环境,安装vue的脚手架工具 npm install --global vue-cli / cnpm install --g ...
- LCA最近公共祖先(least common ancestors)
#include"stdio.h" #include"string.h" #include"iostream" #include" ...