NSDate--日期格式
日期格式:
年:
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--日期格式的更多相关文章
- NSDate时间类/NSDateFormatter日期格式类
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // NSDate 时间类 继承自N ...
- NSdate 时间格式
NSdate 时间格式 NSTimeInterval 时间间隔 基本单位 秒 NSDateFormatter 时间格式器 用于日期对象的格式化或字符串解析为日期对象 日期格式如下: y 年 M 年 ...
- ios日期格式转换
转自:http://blog.csdn.net/l_ch_g/article/details/8217725 1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面 ...
- Java与IOS日期格式
//JAVA日期格式 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM- ...
- 返回日期格式:2017-12-03T13:58:58.901Z,判断时间间隔 如 “刚刚”,“一分钟前”,“一小时前”等
后台返回的格式如下: 实现输出如下: 我的处理如下: // 处理数据 2017-11-28T02:41:09.487Z // 请求的时间戳.日期格式按照ISO8601标准表示,并需要使用UTC时间. ...
- SpringMVC初始化参数绑定--日期格式
一.初始化参数绑定[一种日期格式] 配置步骤: ①:在applicationcontext.xml中只需要配置一个包扫描器即可 <!-- 包扫描器 --> <context:comp ...
- AngularJS过滤器filter-时间日期格式-渲染日期格式-$filter
今天遇到了这些问题索性就 写篇文章吧 话不多说直接上栗子 不管任何是HTML格式还是JS格式必须要在 controller 里面写 // new Date() 获取当前时间 yyyy-MM-ddd ...
- ISO日期格式标准,浏览器到服务器到mysql中的时区
时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我 ...
- JAVA 日期格式工具类DateUtil.java
DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...
- Oracle 获取当前日期及日期格式
http://blog.sina.com.cn/s/blog_6168ee920100l2ye.html Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: ...
随机推荐
- Appium在没有收到下一个命令时,默认超时时间是60s,超时后应用将会自动关闭,如果有需要等待超过60s的场景,怎么处理?
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("newCo ...
- XML操作总结
在开发过程中对XML的使用不是太多,要用到时候也是想办法绕过去,最近一个同事给了一个详细的操作.分享一下 using System; using System.Collections.Generic; ...
- .NET 扩展方法
.NET 的扩展方法是在.NET 3.0引入的,MSDN给出的定义是:扩展方法使你能够向现有类型“添加”方法(包括你自定义的类型和对象噢),而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩 ...
- linux 服务器登录显示lastlogin
1.参数修改: /etc/ssh/sshd_config 问价里边的 printlastlog 设置为yes /etc/ssh/sshd_config 问价里边的 printmotd 设置为yes 2 ...
- 利用 Gulp 处理前端工作流程
最近做项目,因为每次做完后都要手动压缩CSS.JS 等文件,压缩后另存为 *.min.xxx. Less 还要手动输入命令进行编译,调整页面也经常要手动刷新页面看效果,很麻烦,就尝试用 gulp 去处 ...
- 阿里巴巴分布式服务框架Dubbo介绍(1)主要特色
引言 互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距.例如 传统BS企业内部门户只需要考虑数百人以及几千人的访问压力,而大型互联网服务有时需要考虑的是千万甚至上亿的用户: 传统企业 ...
- 第九十八天请假 PHP TP框架 空操作和命名空间
访问空方法解决办法->在控制器里面创建 _empty 方法 <?php namespace Home\Controller; use Think\Controller; class Ind ...
- APP弱网测试
APP弱网测试 App弱网测试方法,常用工具有使用fiddler进行网络模拟,也可以使用Network Emulator Toolkit控制模拟网络,相对来说Network Emulator To ...
- 【转载】H264--1--编码原理以及I帧B帧P帧
---------------------- 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理 ...
- [转] Python包和类的基本用法
http://blog.csdn.net/liukang325/article/details/46724365 建立一个文件夹filePackage 在filePackage 文件夹内创建 __in ...