获取北京时间(上海时间\(^o^)/~)

+ (NSString *) getCurrentDateStr{

NSDate * date = [NSDate date];
    
    NSDateFormatter * format = [[NSDateFormatter alloc] init];
    
    format.dateFormat = @"yyyy-MM-dd hh:mm:ss";
    NSTimeZone * tz = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    format.timeZone = tz;
    NSString * dStr = [format stringFromDate:date];
    return dStr;
}

怎么说?时间和日期不是了不起的属性、了不起的功能,但是,我们决不能够因此就“冷落”它。

一:怎么“搞到货”--如何获取时间、日期

//-=-==当前时间------默认显示“0时区”时间
NSDate * date1=[NSDate date]; //=-=-时间戳
//--1,该时间距1970年60秒
NSDate * date2=[NSDatedateWithTimeIntervalSince1970:]; //--2,2000年
NSDate * date3=[NSDate dateWithTimeIntervalSinceReferenceDate:*]; //-=--=-=---现在开始"NSTimeInterval"之后的时间
NSDate * date4=[NSDate dateWithTimeIntervalSinceNow:*]; //-=-=-一个日期“date1”之后“timeinterval”秒的日期
NSDate * date5=[NSDate dateWithTimeInterval:60sinceDate:date1];

二: 得到日期和时间之后,格式可能“不是我想要的”,怎么办?

日期的格式化类:NSFormatter,通过这个类可以得到你想要的格式,但是,注意在一定的基础上进行格式化:

yyyy / yy :年份 2012 / 12

MM         : 月份

dd          : "日份"

HH         :时

mm        : 分

ss           :秒

a            :AM / PM (12小时格式时选用)

zzz         : 时区

EEEE      :星期几

格式化之后的字符串还能够转换回原来的NSDate类型,但是,该字符串要遵守格式;(时间默认是0时区,但转换之后就是你的当前所在时区)

/** 日期格式化类 :NSFormatter:NSObject */
NSDateFormatter * formatter=[[NSDate Formatter alloc] init]; //-------=时间转换成字符串=--------
formatter.dateFormat=@"yyyy举MM头dd望HH明mm月ss a王zzz王EEEE";
NSString * dateStr=[formatter stringFromDate:date1]; NSLog(@"时间转成字符串:%@",dateStr); //-------=字符串转换成日期-----=====
/** 字符串转过来的时间是“当前时区的时间” */
NSString * string=@"2016举06头28望17明54月41 PM王GMT+8王Tuesday"; NSDate * strDate=[formatter dateFromString:string]; NSLog(@"字符串转时间:%@",strDate);

三: 两个日期的早晚比较

/** 比较日期 */
BOOL flag=[date1 isEqualToDate:date2]; if (flag==NO) {
NSLog(@"低头思故乡");
} //--=比较两个日期的早晚---=
/** 返回较早的时间 */
NSDate * date6=[date1 earlierDate:date2]; NSLog(@"%@",date6);
/** 返回晚的时间 */ NSDate * date7=[date1 laterDate:date2]; NSLog(@"%@",date7);
}

四: 日期的控件--UIDatePicker

上图就是使用UIDatePicker选择闹钟的时间;

如何使用之?

UIDatePicker * picker=[[UIDatePickeralloc] initWithFrame:CGRectMake(, ,kWidth, kHeight)];

    picker.backgroundColor=[UIColor cyanColor];

    [picker addTarget:selfaction:@selector(changeAction:) forControlEvents:UIControlEventValueChanged];
/** 确定显示的格式:时间、日期、时间+日期 */
picker.datePickerMode=UIDatePickerModeDateAndTime; [self.view addSubview:picker];

就是这么easy。

UIDatePicker : UIControl  可以添加事件 (addTarget) 触发事件的方式:UIControlEventValueChanged

#pragma mark - 值改变的监听事件
- (void) changeAction:(UIDatePicker *) p{ NSLog(@"%@",p.date); }

意欲捕鸣蝉,忽然闭口立。

iOS中的时间和日期的更多相关文章

  1. Ios中比较两个日期之间的时间差距

    1.比较两个日期之间的时间差距 // 1.日历对象(标识:时区相关的标识) NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIde ...

  2. C标准函数库中获取时间与日期、对时间与日期数据操作及格式化

    表示时间的三种数据类型[编辑] 日历时间(calendar time),是从一个标准时间点(epoch)到现在的时间经过的秒数,不包括插入闰秒对时间的调整.开始计时的标准时间点,各种编译器一般使用19 ...

  3. Java8 中的时间和日期 API

    1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...

  4. Python中的时间与日期

    本文简要介绍datetime,time模块的简要用法. datetime模块 datetime模块主要有四个主要的对象. date 处理年.月.日 time处理时.分.秒.微秒 datetime处理日 ...

  5. 关于iOS中的时间

    两类 绝对时间 [NSDate date].CFAbsoluteTimeGetCurrent(),或者gettimeofday(). 返回的是从某一个时刻开始,度过的秒数.会随着用户设置的系统时间更改 ...

  6. iOS中精确时间的获取

    下面是一段无法查证出处的英文和自己的翻译 A quick and easy way to measure the performance of a piece of iOS code is to di ...

  7. 苹果浏览器和ios中,时间字符串转换问题

    背景:在开发PC端项目和小程序时,遇到过一个时间字符串转化问题,在苹果浏览器和ios微信客户端里,"2018-10-15 18:20" 以 字符"-"拼接的时间 ...

  8. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. hibernate Java 时间和日期类型的 Hibernate 映射

    基础知识: 在 Java 中, 代表时间和日期的类型包含: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java. ...

随机推荐

  1. WinForm------Reflector反编译工具下载

    地址: http://www.ddooo.com/softdown/70642.htm

  2. Java——布局管理器

    在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout.BorderLayout.GridLayout.CardLay ...

  3. Java @Override报错

    问题 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误:The method *** of type *** must override a superclass ...

  4. 如何在命令行模式下查看Python帮助文档---dir、help、__doc__

    如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...

  5. JS数组类型检测

    在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...

  6. css3 中的transition和transform

    我以前始终都把他搞反,或者是混淆.现在可以稍微小结下. Transition:CSS3中处理动画的一个样式:只涉及动画起始和终止两个状态.如果涉及到一个动画的各个时间或者状态,那就必须要用到的另外一个 ...

  7. ecshop广告-》单张,多张

    //读取广告 function get_ad_id($ad_id){ //读取指定ad_id广告 $sql = 'select * from '. $GLOBALS['ecs']->table( ...

  8. Robot Framework--09 分支与循环的用法

    转自:http://blog.csdn.net/tulituqi/article/details/8038923 一.分支 在Robotframework2.7.4之前的版本,我们要想写IF比较容易, ...

  9. mssql禁用启用主键约束

    EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'  --禁用 EXEC sp_msforeachtable 'ALTER TA ...

  10. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+pat----------<base>元素有关

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request. ...