Objective-C 时间操作实用方法总结

Objective-C 时间操作实用方法总结

根据月头获取月尾日期

/**
 *  GetMonthEndDate
 *  根据月头获取月尾日期
 *
 *  @param monthBegin 月头(yyyy-MM-dd HH:mm:ss)
 *
 *  @return NSDate / nil
 */
+(NSDate *) GetMonthEndDate:(NSString *)monthBegin{

    if (![monthBegin isEqualToString:@""]){

        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC+8"]];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

        NSDateComponents *currentMonth = [[NSDateComponents alloc] init];
        currentMonth.month = 1;

         NSDate *end = [[NSCalendar currentCalendar] dateByAddingComponents:currentMonth toDate:[formatter dateFromString:monthBegin] options:0];

        return end;
    }else return nil;
}

根据日期获取星期

/**
 *  GetWeekForDate
 *  根据日期获取星期
 *
 *  @param NSString strDate 日期(yyyy-MM-dd)
 *
 *  @return NSString / empty
 */
+(NSString*) GetWeekForDate:(NSString *) strDate{

    if (![strDate isEqualToString:@""]) {

        //时间格式化
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

        //获取对应时间
        [formatter setDateFormat:@"yyyy-MM-dd"];
        NSDate *cdate = [formatter dateFromString:strDate];

        //获取时间信息
        [formatter setDateFormat:@"yyyy-MM-dd EEEE HH:mm:ss a"];
        NSString *locationString=[formatter stringFromDate: cdate];

        NSArray *arrDate = [locationString componentsSeparatedByString:@" "];
        NSString *strWeek = [NSString stringWithFormat:@"%@",[arrDate objectAtIndex:1]];

        if ([strWeek isEqualToString:@"Sunday"])        return @"周末";
        else if ([strWeek isEqualToString:@"Monday"])   return @"周一";
        else if ([strWeek isEqualToString:@"Tuesday"])  return @"周二";
        else if ([strWeek isEqualToString:@"Wednesday"])return @"周三";
        else if ([strWeek isEqualToString:@"Thursday"]) return @"周四";
        else if ([strWeek isEqualToString:@"Friday"])   return @"周五";
        else if ([strWeek isEqualToString:@"Saturday"]) return @"周六";
        else return @"";
    }else return nil;
}

根据当前时间获取 unix时间戳

    //获取时间戳
    NSDate *datetime = [NSDate date];
    NSTimeZone *zone = [NSTimeZone timeZoneForSecondsFromGMT:8];
    NSInteger interval = [zone secondsFromGMTForDate:datetime];
    NSDate *localeDate = [datetime  dateByAddingTimeInterval: interval];
    NSString *unixtime = [NSString stringWithFormat:@"%.f", floor([localeDate timeIntervalSince1970])];

如下文章为本文提供了相当大的帮助,表示感谢:

http://book.2cto.com/201304/21439.html

http://blog.sina.com.cn/s/blog_4e24d9c501010lu2.html

时间: 2024-10-24 12:02:40

Objective-C 时间操作实用方法总结的相关文章

详细讲解提高数据库查询效率的实用方法、外键关于性能

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放

javascript 时间操作

javascript时间函数 javascript提供了Date对象来进行时间和日期的计算.Date对象有多种构造函数: 1.dateObj=new Date() //当前时间 2.dateObj=new Date(milliseconds) //距离起始时间1970年1月1日的毫秒数 3.dateObj=new Date(datestring) //字符串代表的日期与时间.此字符串可以使用Date.parse()转换,比如"Jannuary 1, 1998 20:13:15" 4.d

Java学习(十一):Java中的常用时间操作

java中的时间操作不外乎这四种情况:获取当前时间,获取某个时间的某种格式,设置时间和时间的运算. 1.获取当前时间 有两种方式可以获得,第一种,使用java.util.Date类. Date date = new Date(); date.getTime(); 还有一种方式,使用System.currentTimeMillis(); 这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数. 2.获取某

jquery源码解析:jQuery队列操作queue方法实现的原理

我们先来看一下jQuery中有关队列操作的方法集: 从上图可以看出,既有静态方法,又有实例方法.queue方法,相当于数组中的push操作.dequeue相当于数组的shift操作.举个例子: function aaa(){ alert(1); } function bbb(){ alert(2); } $.queue(document,"q1",aaa);   //在document下创建一个队列q1,并往q1队列中添加aaa函数. $.queue(document,"q1

JavaScript日期时间操作

js日期操作: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)myDate.getDay(); //获取当前星期X(0-6,0代表星期天)myDate.getTime(); //获取当前时间(从1970.1

BeginInvoke和EndInvoke操作和方法

开发语言:C#3.0 IDE:Visual Studio 2008 一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行.这就需要在同一个进程中开启多个线程.我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数,如下图所示. 如果任务管理器没有“线程数”列,可以[查看]>[选择列]来显

js 时间操作 转载

Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1970-????)myDate.getMonth();       //获取当前月份(0-11,0代表1月)myDate.getDate();        //获取当前日(1-31)myDate.getDay();         //获取当前星期X(0-6,0代表

Java Calendar 类的时间操作

Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java 算法(24) 版权声明:本文为博主原创文章,未经博主允许不得转载. JavaCalendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/article/details/9

django之定义模板语法07(过滤器之时间操作)

1.index页面修改: <html> <head> <title>DOcument</title> </head> <body> <h1>{{user}}</h1> </br> </br> <h1>过滤器</h1> {% for book in user %} <li>{{book | upper |lower | capfirst}}</li