NSDateFormatter是NSFormatter的子类,是用来表示输出的时间格式。

下面贴出两个时间的例子。

例子一、

- (void)dateString1 {

    NSDateFormatter *format=[[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd a HH:mm:ss EEEE"];
format.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[format setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:]];
NSString *dateString = [format stringFromDate:[NSDate date]]; NSLog(@"%@:----%@",NSStringFromSelector(_cmd),dateString); } 打印结果如下: -- ::53.616 MyTestWorkProduct[:] dateString1:------ PM :: Monday

例子二、

- (void)dateString2 {

    NSDateFormatter *format=[[NSDateFormatter alloc] init];
format.dateStyle = kCFDateFormatterFullStyle;
format.timeStyle = kCFDateFormatterFullStyle;
format.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
[format setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSString *dateString = [format stringFromDate:[NSDate date]]; NSLog(@"%@:----%@",NSStringFromSelector(_cmd),dateString); } 打印结果如下: -- ::53.623 MyTestWorkProduct[:] dateString2:----2017年2月27日 星期一 GMT 下午3::

例子分析:

从上面两个方法与打印结果中可见,NSDateFormatter类型设置通常设置三项:1.日前+时间设置;2.本地设置;3.时区设置。

1.前+时间设置

日前+时间设置分为两类,一种是系统类型的设置,另一种是自定义设置

系统类型的设置是系统提供的枚举

 英文
[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
typedef CF_ENUM(CFIndex, CFDateFormatterStyle) { // date and time format styles
kCFDateFormatterNoStyle = , // 无输出
kCFDateFormatterShortStyle = , // 10/29/12, 2:27 PM
kCFDateFormatterMediumStyle = , // Oct 29, 2012, 2:36:59 PM
kCFDateFormatterLongStyle = , // October 29, 2012, 2:38:46 PM GMT+08:00
kCFDateFormatterFullStyle = // Monday, October 29, 2012, 2:39:56 PM China Standard Time
}; 中文
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
typedef CF_ENUM(CFIndex, CFDateFormatterStyle) { // date and time format styles
kCFDateFormatterNoStyle = , // 无输出
kCFDateFormatterShortStyle = , // 12-10-29 下午2:52
kCFDateFormatterMediumStyle = , // 2012-10-29 下午2:51:43
kCFDateFormatterLongStyle = , // 2012年10月29日 GMT+0800下午2时51分08秒
kCFDateFormatterFullStyle = // 2012年10月29日星期一 中国标准时间下午2时46分49秒
};

自定义设置

.[format setDateFormat:@"yyyy-MM-dd a HH:mm:ss EEEE"];

.[format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

2.本地设置

本地设置中常用的是中文和英文

//中文
format.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
//英文
format.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

3.时区设置。

有时候获取的时间差了8小时,这是因为时区问题导致的,解决方法如下:

 [format setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
或者
[format setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:]];

这三种属性任意设置,就可以获得不同类型的时间格式

NSDateFormatter常见的使用方式的更多相关文章

  1. asp.net开发中常见公共捕获异常方式总结(附源码)

    本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统 ...

  2. 转:jQuery 常见操作实现方式

    http://www.cnblogs.com/guomingfeng/articles/2038707.html 一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备 ...

  3. jQuery 常见操作实现方式

    一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备忘. jQuery 常见操作实现方式 $("标签名") //取html元素 document. ...

  4. ListView常见的优化方式简述

    ListView的优化 对于ListView来说,应该算是布局中几种最常用的组件之一了,使用也十分方便,下面个大家介绍一下两种常见的优化方式. 1.条目复用优化 其实listview的工作原理就是,l ...

  5. maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式

    maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式: 1.更改项目的jdk为我们安装的jdk2.更改build配置里的 output folder 目录为 xxx项目名/target ...

  6. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  7. 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程

    反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑)   背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...

  8. 项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

    1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 ...

  9. 前端三部曲之Css-- 1(常见的居中方式)

    下面来介绍一下web端页面最常见的居中方式 页面的基本结构:一个简单的div <!DOCTYPE html> <html lang="en"> <he ...

随机推荐

  1. poj-1146 ID codes

    Description It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In or ...

  2. PAT-L2-007-gplt真题

    题目分析: 1. 首先,题目说一个家庭有孩子爸爸妈妈等几辈人,可以利用并查集将一个家庭里的所有人变成一个集合: 2. 刚好题目的目的也是这样,输出的是一个家庭人数,人均房产面积,人均房产套数等: 3. ...

  3. 【HTML】 HTML基础知识 表单

    html 表单 表单的标签是<form>,用于给网站的后台提交数据.提交的数据格式原本是什么样不太清楚,以python的flask框架来看,我从表单中得到的数据是一个字典(flask.re ...

  4. attr与prop html与text

  5. 线程池与Python中的GIL

    线程池是一个操作系统的概念,它是对多线程的一种优化. 多线程的时候,创建和销毁线程伴随着操作系统的开销,如果频繁创建/销毁线程,则会使效率大大降低. 而线程池,是先创建出一批线程放入池子里,需要创建线 ...

  6. [日常] Codeforces Round #441 Div.2 实况

    上次打了一发 Round #440 Div.2 结果被垃圾交互器卡掉 $200$ Rating后心情复杂... 然后立了个 Round #441 要翻上蓝的flag QAQ 晚饭回来就开始搞事情, 大 ...

  7. 第二次作业-Steam软件分析

    1 .介绍产品相关信息 随着电子音频游戏产业的发展以及正版意识的崛起,Steam已经成为大部分游戏爱好者必备的一款游戏下载平台.这款软件也使得Valve公司从一个游戏制作公司成功扩展业务到一个承揽众多 ...

  8. Beta冲刺NO.5

    Beta冲刺 第五天 1. 昨天的困难 1.昨天的困难主要是在类的整理上,一些逻辑理不清,也有一些类写的太绝对了,扩展性就不那么好了,所以,昨天的困难就是在重构上. 页面结构太凌乱,之前没有统筹好具体 ...

  9. 结对开发五--对一千个数long型的一维数组求最大子数组的和

    一.设计思想 我们根据第一个实验,再让他自动生成1000个随机long型数.大致思想和实验一一样,自己已埋入炸弹. 二.实验代码 package com.minirisoft; import java ...

  10. tornado 采用 epoll 代理构建高并发网络模型

    1 阻塞和非阻塞  对于阻塞和非阻塞,网上有一个很形象的比喻,就是说好比你在等快递,阻塞模式就是快递如果不到,你就不能做其他事情.非阻塞模式就是在这段时间里面,你可以做其他事情,比如上网.打游戏.睡觉 ...