1016-09-首页22-日期转换

两个NSDate之间是可以进行比较的。

有了NSCalendar比较两个日期就易如反掌

/**
 1.今年
 1> 今天
 * 1分内: 刚刚
 * 1分~59分内:xx分钟前
 * 大于60分钟:xx小时前
 
 2> 昨天
 * 昨天 xx:xx
 
 3> 其他
 * xx-xx xx:xx
 
 2.非今年
 1> xxxx-xx-xx xx:xx
 */
- (NSString *)created_at
{
    // _created_at == Thu Oct 16 17:06:25 +0800 2014
    // dateFormat == EEE MMM dd HH:mm:ss Z yyyy
    // NSString --> NSDate
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    // 如果是真机调试,转换这种欧美时间,需要设置locale
    fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    
    // 设置日期格式(声明字符串里面每个数字和单词的含义)
    
    // E:星期几
    // M:月份
    // d:几号(这个月的第几天)
    // H:24小时制的小时
    // m:分钟
    // s:秒
    // y:年
    fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
    
    // 微博的创建日期
    NSDate *createDate = [fmt dateFromString:_created_at];
    // 当前时间
    NSDate *now = [NSDate date];
    // 日历对象(方便比较两个日期之间的差距)
    NSCalendar *calendar = [NSCalendar currentCalendar];
    // NSCalendarUnit枚举代表想获得哪些差值
    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    // 计算两个日期之间的差值
    NSDateComponents *cmps = [calendar components:unit fromDate:createDate toDate:now options:0];
    
    HWLog(@"%@ %@ %@", createDate, now, cmps);
    
    return _created_at;
}

时间: 2024-12-28 21:07:46

1016-09-首页22-日期转换的相关文章

Javascript兼容各浏览器的日期转换

var date = new Date(Date.parse("2015-09-05".replace(/-/g,"/")));'2015-09-05'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的. 正确的用法是'2015/09/06'. ------------------------------------------------- javascript的日期用法: var myDate = new Date(); myDate.ge

土办法解决日期转换问题,转出格式为。。。 贰零壹陆年零壹月零捌日

/** * 参数名称:@param dateStr 待转换的日期(String格式,结构为yyyy-MM-dd) * 返回值:String 小写汉字的日期 * 方法描述:土办法解决日期转换问题,转出格式为... 贰零壹陆年零壹月零捌日 * @author:zhouzhiwei * 创建时间:2014-5-23 下午05:59:20 */ public static String stringToChineseSmallRMB(String dateStr) { // 传参数的格式为 2011-1

MYSQL中的日期转换

MYSQL中的日期转换 网址:?http://www.eygle.com/digest/2006/09/mysql_date_convert.html 对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型. 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table?WHERE TO_DAYS(NOW()) - TO_DAYS(date_col)

Mysql日期转换函数、时间转换函数

Mysql日期转换函数.时间转换函数 一.MySQL 获得当前日期时间 函数 1,获得当前日期+时间(date + time)函数:now(): select now(); 结果:2008-08-08 22:20:46 2,获得当前日期+时间(date + time)函数:sysdate()sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值: select sysdate(); 结果:2008-08

oracle 字符串与日期转换sql

常用sql语句: select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual;   //显示:08-11-07 13:22:42 select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual; //显示:2005-12-25 13:25:59 获取系统时间: select sysdate from dual; 转换的格式: 表示year的:y  表示年的最后一位

带有时区的日期转换

1.日期样式 转换前 转换后 26/Jun/2014:09:02:19 +0800 2014-06-26 09:02:19 dd/MMM/yyyy:HH:mm:ss Z yyyy-MM-dd HH:mm:ss 2.转换代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class Time { pu

日期转换类

1:   2: // 创建日期: 2008-04-23 3: // 说 明: 日期,时间处理相关的类,大多转换为字符串. 4: using System; 5: using System.Collections.Generic; 6: using System.Text; 7:   8: namespace AnkeEdu.Tools 9: { 10: /// <summary> 11: /// 日期,时间处理 12: /// </summary> 13: public stati

java中json和字符串互转及日期转换 练习

一:以下是用到的jar名称: commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons-logging-1.1.1.jar ezmorph-1.0.3.jar json-lib-2.2.3-jdk13.jar json.jar jar下载地址 链接: https://pan.baidu.com/s/1c2Mkqli 密码: 6ems 二:练习的时候用到了内部类,所以里面有一点对内部类的

CONVERT(varchar, getdate(), 120 ) SQLSERVER 日期转换

这是一个mssql数据库的函数,Convert函数的作用,是进行数据类型的转换. 而您所问的这个convert(char(20),openDate,120)则是对日期字段,进行格式化转换成字符格式的函数. 接下来,对您函数中的三个参数,分别进行说明: 1.char(20),是要转换成的目标数据类型及长度,这里您还可以使用varchar(20),也可以使用varchar(10),如果使用20,则转换后的字符串可以是20的长度,如果是10,则只取前10 位了.后面的省掉. 2.openDate,是一

SQL Server中使用convert进行日期转换

SQL Server中使用convert进行日期转换 一般存入数据库中的时间格式为yyyy-mm-ddhh:mm:ss 如果要转换为yyyy-mm-dd  短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明: 使用 CONVERT: CONVERT (data_type[(length)],expression[,style]) 参数 expression 是任何有效的 Microsoft® SQL Server™ 表达式.data_type 目标