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 ...
随机推荐
- java虚拟机性能监控调优及原则
摘抄 http://uule.iteye.com/blog/2114697 一.JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老 ...
- struts1的配置文件详解11111
要想使用Struts,至少要依靠两个配置文件:web.xml和struts-config.xml.其中web.xml用来安装Struts框架.而struts-config.xml用来配置在Struts ...
- CSS-筛选 获取第一个td
tr td:first-child{ font-weight:bold; } 看样子,应该是jquery中有些筛选,css也是能够同样进行筛选的,只是模式有些可能不同 a[data-toggle*=' ...
- ATM技术基本原理
1 术语.定义和缩略语 1.1 术语.定义 术语/定义 说 明 ATM层 位于B-ISDN/ATM网络协议参考模型的第二层,完成交换.路由选择和信元复用功能.ATM层的基本处理单位是信元. AA ...
- Node.js- sublime搭建node的编译环境
自动配置: 1.安装package control(见 http://www.cnblogs.com/padding1015/p/7763014.html) 2.sublime编辑器中,按快捷键:ct ...
- JavaScript 中的 Map
很多编程语言中都有类似Map这种 键-值对 的数据结构. 可惜,JavaScript没有. 幸运的是,可以自己构建一个Map对象. 对象的定义 <script type="text/j ...
- python中的list和array的不同之处
原文地址: http://blog.csdn.net/liyaohhh/article/details/51055147#reply python中的list是python的内置数据类型,list中 ...
- java(5) 线程
1.理清概念 并行与并发: *并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时. *并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时.并发往往在场 ...
- 开发常见错误之 :Missing artifact com.sun:tools:jar 1.7.0
Missing artifact com.sun:tools:jar 1.7.0 解决办法一: 手动配置pom.xml,添加一个dependency如下: <dependency> < ...
- wps 批量调整图片大小 宏
Sub 批量调整图片大小() ' ' 批量修改图片 Macro ' 宏由 zxz 录制,时间: 2014/10/29 '批量调整图片大小,避免图片太大显示不完全 '循环图片集合 For Each iS ...