日期格式:

年:
  • 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. 文件_ _android从资源文件中读取文件流并显示的方法

    ======== 1   android从资源文件中读取文件流并显示的方法. 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private ...

  2. java io流 数据流传输

    java io流 数据流传输 把这段当公式用就可以了 //数据流传输 import java.io.*; public class Index{ public static void main(Str ...

  3. Eclipse启动Tomcat后无法访问项目

    Eclipse中的Tomcat可以正常启动,不过发布项目之后,无法访问,包括http://localhost:8080/的小猫页面也无法访问到,报404错误.这是因为Eclipse所指定的Server ...

  4. ubuntu 下载额外数据不成功”的恼人提示通知

    最近用Ubunt也遇到这个问题,搜到这个答案 参考原文链接: http://forum.ubuntu.org.cn/viewtopic.php?t=387865 2.移除“下载额外数据不成功”的恼人提 ...

  5. Blackfin DSP(八):BF533的DMA

    #include <cdefBF533.h> #include <sys\exception.h> #define POLC 0x00004000 #define PORT_C ...

  6. 55. Set Matrix Zeroes

    Set Matrix Zeroes (Link: https://oj.leetcode.com/problems/set-matrix-zeroes/) Given a m x n matrix, ...

  7. PHP使用feof()函数读文件的方法

    这篇文章主要介绍了PHP使用feof()函数读文件的方法,以实例形式对比了正确与错误的用法,阐明了feof()函数的使用技巧,需要的朋友可以参考下 本文实例讲述了PHP使用feof()函数读文件的方法 ...

  8. HDU2047

    http://acm.hdu.edu.cn/showproblem.php?pid=2047 对于这道题,我就从后面向前面考虑. 当第n个是o的话,那么n-1 只可以取e或者f,如果n是e或者f的话, ...

  9. Centos中的Docker 配置:将loop-lvm改为derict-lvm

    重新装了个虚拟机,回顾一下最近三天的工作: Centos 查看版本 cat /etc/redhat-release yum -y upgrade 升级所有包,不改变软件设置和系统设置,系统版本升级,内 ...

  10. nodejs将PDF文件转换成txt文本,并利用python处理转换后的文本文件

    目前公司Web服务端的开发是用Nodejs,所以开发功能的话首先使用Nodejs,这也是为什么不直接用python转换的原因. 由于node对文本的处理(提取所需信息)的能力不强,类似于npm上的包: ...