日期格式:

年:
  • y 将年份 (0-9) 显示为不带前导零的数字
  • yy 以带前导零的两位数字格式显示年份
  • yyy 以四位数字格式显示年份
  • yyyy 以四位数字格式显示年份
月:
  • M 将月份显示为不带前导零的数字(如一月表示为 1)
  • MM 将月份显示为带前导零的数字(例如 01/12/01)
  • MMM 将月份显示为缩写形式(例如 Jan)
  • MMMM 将月份显示为完整月份名(例如 January)
    • 一月 Jan January
    • 二月 Feb February
    • 三月 Mar March
    • 四月 Apr April
    • 五月 May May
    • 六月 Jun June
    • 七月 Jul July
    • 八月 Aug August
    • 九月 Sep September
    • 十月 Oct October
    • 十一月 Nov November
    • 十二月 Dec December

星期:
  • EEE 将日显示为缩写形式(例如 Sun)
  • EEEE 将日显示为全名(例如 Sunday)
    • 星期一 Mon Monday
    • 星期二 Tue Tuesday
    • 星期三 Wed Wednesday
    • 星期四 Thu Thursday
    • 星期五 Fri Friday
    • 星期六 Sat Saturday
    • 星期天 Sun Sunday

日:
  • d 将日显示为不带前导零的数字(如 1)
  • dd 将日显示为带前导零的数字(如 01)

时:
  • h 使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)
  • hh 使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)
  • H 使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)
  • HH 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)

分:
  • m 将分钟显示为不带前导零的数字(例如 12:1:15)
  • mm 将分钟显示为带前导零的数字(例如 12:01:15)

秒:
  • s 将秒显示为不带前导零的数字(例如 12:15:5)
  • ss 将秒显示为带前导零的数字(例如 12:15:05)
  • f 显示秒的小数部分
  • ff 将精确显示到百分之一秒
  • ffff 将精确显示到万分之一秒
  • 用户定义格式中最多可使用七个 f 符号

上下午:

  • t 使用 12 小时制

    • 中午之前任一小时显示大写的 A
    • 中午到 11:59 PM 之间的任一小时显示大写的 P
  • tt 对于使用 12 小时制的区域设置
    • 中午之前任一小时显示大写的 AM
    • 中午到 11:59 PM 之间的任一小时显示大写的 PM
  • 对于使用 24 小时制的区域设置,不显示任何字符

时区:

  • z 显示不带前导零的时区偏移量
  • zz 显示带前导零的时区偏移量(例如 -08)
  • zzz 显示完整的时区偏移量(例如 -0800)

纪元:

  • gg 显示时代/纪元字符串(例如 A.D.)

日期需求:

需求1.输出当前时间,例如2016-06-18 16:46:10 Saturday

    //1.用[NSDate date]可以获取系统当前时间
NSDate * currentDate = [NSDate date]; //2.实例化一个日期格式转换器
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; //3.指定地区一定要指定,否则真机运行会有问题,统一用 en 即可
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"]; //4.设置输出格式
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss EEEE"; //5.通过日期格式转换器将NSDate类转换成可以输出的字符串.
NSString *currentDateStr = [dateFormatter stringFromDate:currentDate];
NSLog(@"当前的时间: %@",currentDateStr);

输出:

  

需求2.用下面格式输出时间:

  • 刚刚(一分钟内)
  • X分钟前(一小时内)
  • X小时前(当天)
  • 昨天 HH:mm(昨天)
  • MM-dd HH:mm(一年内)
  • yyyy-MM-dd HH:mm(更早期)

1.写了一个分类NSDate+Formatter 继承自NSDate.

NSDate+Formatter.h 文件:

#import <Foundation/Foundation.h>

@interface NSDate (Formatter)

//1.获取系统当前时间 格式:2016-06-20 10:22:11
+ (NSString *)dateCurrentTime; //2.将CurrentTime格式时间转换成系统默认的NSDate格式
+ (NSDate *)dateConvertIntoNSDateWithCurrentTime:(NSString *)timeString; //3.将数据库时间和当前时间相比,得出时间差,根据下面要求输出.
/*
刚刚(一分钟内)
X分钟前(一小时内)
X小时前(当天)
昨天 HH:mm(昨天)
MM-dd HH:mm(一年内)
yyyy-MM-dd HH:mm(更早期)
*/
+ (NSString *)dateDescriptionWithDate:(NSDate *)date;
@end

NSDate+Formatter.m文件:

//  NSDate+Formatter.m
// NSDate
//
// Created by 贾永强 on 16/6/20.
// Copyright © 2016年 pandora. All rights reserved.
// #import "NSDate+Formatter.h" @implementation NSDate (Formatter) //获取系统当前时间 格式:2016-06-20 10:22:11
+ (NSString *)dateCurrentTime{
//1.用[NSDate date]可以获取系统当前时间 NSDate * currentDate = [NSDate date];//系统默认格式:2016-06-20 02:22:11 +0000 //2.实例化一个日期格式转换器
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; //3.指定地区一定要指定,否则真机运行会有问题,统一用 en 即可
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"]; //4.设置输出格式
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //5.通过日期格式转换器将NSDate类转换成可以输出的字符串.
NSString *currentDateStr = [dateFormatter stringFromDate:currentDate]; return currentDateStr;
} //将CurrentTime格式时间转换成系统默认的NSDate格式
+ (NSDate *)dateConvertIntoNSDateWithCurrentTime:(NSString *)timeString{
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date = [dateFormatter dateFromString:timeString];
return date;
} //将数据库时间和当前时间相比,得出时间差.
+ (NSString *)dateDescriptionWithDate:(NSDate *)date{ NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"];
NSString *dateFormatterString = @" HH:mm"; // NSCalendar日历类,提供了非常丰富的日期转换函数
//1. 取出当前的日期
NSCalendar *currentCalendar = [NSCalendar currentCalendar]; //2. 用当前日期currentCalendar和传入的date比较,判断是否是今天
if ([currentCalendar isDateInToday:date]) { // 使用日期和当前的系统时间进行比较,判断相差的秒数
int seconds = CFDateGetTimeIntervalSinceDate((CFDateRef)[NSDate date], (CFDateRef)date);
if(seconds < ){
return @"刚刚";
}else if (seconds < ){
return [NSString stringWithFormat:@"%d 分钟前",seconds / ];
}else{
return [NSString stringWithFormat:@"%d 小时前",seconds / ];
}
} //3. 判断是否是昨天
if ([currentCalendar isDateInYesterday:date]){
NSString *tempString = @"昨天";
dateFormatterString = [tempString stringByAppendingString:dateFormatterString]; }else{
//4.比较函数,返回完整的自然年数. 当期日期和传入日期比较,如果时间间隔<1年,返回0. 0年<时间间隔<2年,返回1 ....
NSDateComponents *dateComponents = [currentCalendar components:NSCalendarUnitYear fromDate:date toDate:[NSDate date]options:(NSCalendarWrapComponents)]; if (dateComponents.year == ) {//时间间隔==0,说明是今年
dateFormatterString = @"MM-dd HH:mm";
}else{
dateFormatterString = @"yyyy-MM-dd HH:mm:ss";
}
} dateFormatter.dateFormat =dateFormatterString;
NSString *currentDateStr = [dateFormatter stringFromDate:date];
return currentDateStr;
}
@end

NSDate--日期格式的更多相关文章

  1. NSDate时间类/NSDateFormatter日期格式类

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // NSDate 时间类 继承自N ...

  2. NSdate 时间格式

    NSdate 时间格式 NSTimeInterval 时间间隔 基本单位 秒 NSDateFormatter 时间格式器 用于日期对象的格式化或字符串解析为日期对象 日期格式如下: y  年 M  年 ...

  3. ios日期格式转换

    转自:http://blog.csdn.net/l_ch_g/article/details/8217725 1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面 ...

  4. Java与IOS日期格式

    //JAVA日期格式 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM- ...

  5. 返回日期格式:2017-12-03T13:58:58.901Z,判断时间间隔 如 “刚刚”,“一分钟前”,“一小时前”等

    后台返回的格式如下: 实现输出如下: 我的处理如下: // 处理数据 2017-11-28T02:41:09.487Z // 请求的时间戳.日期格式按照ISO8601标准表示,并需要使用UTC时间. ...

  6. SpringMVC初始化参数绑定--日期格式

    一.初始化参数绑定[一种日期格式] 配置步骤: ①:在applicationcontext.xml中只需要配置一个包扫描器即可 <!-- 包扫描器 --> <context:comp ...

  7. AngularJS过滤器filter-时间日期格式-渲染日期格式-$filter

    今天遇到了这些问题索性就 写篇文章吧 话不多说直接上栗子 不管任何是HTML格式还是JS格式必须要在  controller 里面写 // new Date() 获取当前时间 yyyy-MM-ddd ...

  8. ISO日期格式标准,浏览器到服务器到mysql中的时区

    时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我 ...

  9. JAVA 日期格式工具类DateUtil.java

    DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...

  10. Oracle 获取当前日期及日期格式

    http://blog.sina.com.cn/s/blog_6168ee920100l2ye.html Oracle 获取当前日期及日期格式 获取系统日期:  SYSDATE()   格式化日期:  ...

随机推荐

  1. Appium在没有收到下一个命令时,默认超时时间是60s,超时后应用将会自动关闭,如果有需要等待超过60s的场景,怎么处理?

    DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("newCo ...

  2. XML操作总结

    在开发过程中对XML的使用不是太多,要用到时候也是想办法绕过去,最近一个同事给了一个详细的操作.分享一下 using System; using System.Collections.Generic; ...

  3. .NET 扩展方法

    .NET 的扩展方法是在.NET 3.0引入的,MSDN给出的定义是:扩展方法使你能够向现有类型“添加”方法(包括你自定义的类型和对象噢),而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩 ...

  4. linux 服务器登录显示lastlogin

    1.参数修改: /etc/ssh/sshd_config 问价里边的 printlastlog 设置为yes /etc/ssh/sshd_config 问价里边的 printmotd 设置为yes 2 ...

  5. 利用 Gulp 处理前端工作流程

    最近做项目,因为每次做完后都要手动压缩CSS.JS 等文件,压缩后另存为 *.min.xxx. Less 还要手动输入命令进行编译,调整页面也经常要手动刷新页面看效果,很麻烦,就尝试用 gulp 去处 ...

  6. 阿里巴巴分布式服务框架Dubbo介绍(1)主要特色

    引言 互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距.例如 传统BS企业内部门户只需要考虑数百人以及几千人的访问压力,而大型互联网服务有时需要考虑的是千万甚至上亿的用户: 传统企业 ...

  7. 第九十八天请假 PHP TP框架 空操作和命名空间

    访问空方法解决办法->在控制器里面创建 _empty 方法 <?php namespace Home\Controller; use Think\Controller; class Ind ...

  8. APP弱网测试

    APP弱网测试   App弱网测试方法,常用工具有使用fiddler进行网络模拟,也可以使用Network Emulator Toolkit控制模拟网络,相对来说Network Emulator To ...

  9. 【转载】H264--1--编码原理以及I帧B帧P帧

    ---------------------- 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理 ...

  10. [转] Python包和类的基本用法

    http://blog.csdn.net/liukang325/article/details/46724365 建立一个文件夹filePackage 在filePackage 文件夹内创建 __in ...