一个显示日期的工具类

.h文件

#import <Foundation/Foundation.h>@interface TimeUtil : NSObject+ (NSString*)getTimeStr1:(long long)time;+(NSString*) getTimeStrStyle1:(long long)time;
+ (NSString*)getTimeStr1Short:(long long)time;+(NSString*) getTimeStrStyle2:(long long)time;+(int)dayCountForMonth:(int)month andYear:(int)year;+(BOOL)isLeapYear:(int)year;@end

.m文件

#import "TimeUtil.h"@implementation TimeUtil+ (NSString*)getTimeStr:(long) createdAt
{// Calculate distance time string//NSString *timestamp;time_t now;time(&now);int distance = (int)difftime(now, createdAt);if (distance < 0) distance = 0;if (distance < 60) {timestamp = [NSString stringWithFormat:@"%d %s", distance, (distance == 1) ? "second ago" : "seconds ago"];}else if (distance < 60 * 60) {distance = distance / 60;timestamp = [NSString stringWithFormat:@"%d %s", distance, (distance == 1) ?

"minute ago" : "minutes ago"]; } else if (distance < 60 * 60 * 24) { distance = distance / 60 / 60; timestamp = [NSString stringWithFormat:@"%d %s", distance, (distance == 1) ? "hour ago" : "hours ago"]; } else if (distance < 60 * 60 * 24 * 7) { distance = distance / 60 / 60 / 24; timestamp = [NSString stringWithFormat:@"%d %s", distance, (distance == 1) ? "day ago" : "days ago"]; } else if (distance < 60 * 60 * 24 * 7 * 4) { distance = distance / 60 / 60 / 24 / 7; timestamp = [NSString stringWithFormat:@"%d %s", distance, (distance == 1) ? "week ago" : "weeks ago"]; } else { static NSDateFormatter *dateFormatter = nil; if (dateFormatter == nil) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; } NSDate *date = [NSDate dateWithTimeIntervalSince1970:createdAt]; timestamp = [dateFormatter stringFromDate:date]; } return timestamp; } + (NSString*)getTimeStr1:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; NSString * string=[NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d",[component year],[component month],[component day],[component hour],[component minute]]; return string; } + (NSString*)getTimeStr1Short:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; NSString * string=[NSString stringWithFormat:@"%04d-%02d-%02d",[component year],[component month],[component day]]; return string; } + (NSString*)getMDStr:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; NSString * string=[NSString stringWithFormat:@"%d月%d日",[component month],[component day]]; return string; } +(NSDateComponents*) getComponent:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; return component; } +(NSString*) getTimeStrStyle1:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; int year=[component year]; int month=[component month]; int day=[component day]; int hour=[component hour]; int minute=[component minute]; NSDate * today=[NSDate date]; component=[calendar components:unitFlags fromDate:today]; int t_year=[component year]; NSString*string=nil; long long now=[today timeIntervalSince1970]; long long distance=now-time; if(distance<60) string=@"刚刚"; else if(distance<60*60) string=[NSString stringWithFormat:@"%lld分钟前",distance/60]; else if(distance<60*60*24) string=[NSString stringWithFormat:@"%lld小时前",distance/60/60]; else if(distance<60*60*24*7) string=[NSString stringWithFormat:@"%lld天前",distance/60/60/24]; else if(year==t_year) string=[NSString stringWithFormat:@"%02d-%02d %d:%02d",month,day,hour,minute]; else string=[NSString stringWithFormat:@"%d-%d-%d",year,month,day]; return string; } +(NSString*) getTimeStrStyle2:(long long)time { NSDate * date=[NSDate dateWithTimeIntervalSince1970:time]; NSCalendar * calendar=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit|NSYearCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit; NSDateComponents * component=[calendar components:unitFlags fromDate:date]; int year=[component year]; int month=[component month]; int day=[component day]; int hour=[component hour]; int minute=[component minute]; int week=[component week]; int weekday=[component weekday]; NSDate * today=[NSDate date]; component=[calendar components:unitFlags fromDate:today]; int t_year=[component year]; int t_month=[component month]; int t_day=[component day]; int t_week=[component week]; NSString*string=nil; if(year==t_year&&month==t_month&&day==t_day) { if(hour<6&&hour>=0) string=[NSString stringWithFormat:@"凌晨 %d:%02d",hour,minute]; else if(hour>=6&&hour<12) string=[NSString stringWithFormat:@"上午 %d:%02d",hour,minute]; else if(hour>=12&&hour<18) string=[NSString stringWithFormat:@"下午 %d:%02d",hour,minute]; else string=[NSString stringWithFormat:@"晚上 %d:%02d",hour,minute]; } else if(year==t_year&&week==t_week) { NSString * daystr=nil; switch (weekday) { case 1: daystr=@"日"; break; case 2: daystr=@"一"; break; case 3: daystr=@"二"; break; case 4: daystr=@"三"; break; case 5: daystr=@"四"; break; case 6: daystr=@"五"; break; case 7: daystr=@"六"; break; default: break; } string=[NSString stringWithFormat:@"周%@ %d:%02d",daystr,hour,minute]; } else if(year==t_year) string=[NSString stringWithFormat:@"%d月%d日",month,day]; else string=[NSString stringWithFormat:@"%d年%d月%d日",year,month,day]; return string; } +(int)dayCountForMonth:(int)month andYear:(int)year { if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) { return 31; }else if(month==4||month==6||month==9||month==11){ return 30; }else if([self isLeapYear:year]){ return 29; }else{ return 28; } } +(BOOL)isLeapYear:(int)year { if (year%400==0) { return YES; }else{ if (year%4==0&&year%100!=0) { return YES; }else{ return NO; } } } @end

一个显示日期的工具类相关推荐

  1. 分享一个Joda-Time日期时间工具类

    写在前面 在JDK1.8之前,处理日期和时间的方式比较单一,Java中提供了Calendar来处理日期,但是过程较为繁琐. 但是在JDK1.8之后,Java更新了time包提供了LocalDate,L ...

  2. JDK8新特性:Lambda表达式、Stream流、日期时间工具类

    重要特性: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号. 可选的大括号:如果主体包含了一个语句,就不需要大括号. ...

  3. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  4. java 日期操作工具类_java8操作日期的工具类

    java8操作日期的工具类 一.方法概览 该包的API提供了大量相关的方法,这些方法一般有一致的方法前缀: of:静态工厂方法. parse:静态工厂方法,关注于解析. get:获取某些东西的值. i ...

  5. 封装一个常用的js工具类

    /*** @author:水痕* @timer:2016-07-28* @email:332904234@qq.com* @version:1.0* @title:封装一个自己常用的工具类js* @n ...

  6. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  7. DateTimeUtils 日期时间工具类 (AS3,Flex3)

    Java代码 package com.lj.utils { import mx.controls.DateField; import mx.controls.dataGridClasses.DataG ...

  8. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  9. java处理日期的工具类DateUtil

    java中处理日期的工具类DateUtil package com.leo.demo.othertest; import org.slf4j.LoggerFactory; import java.sq ...

最新文章

  1. Java报表工具FineReport导出EXCEL的四种API
  2. Java面向对象之继承,方法重写,super关键字,员工类系列继承题
  3. maven 如何看jar是否被修改_如何在线修改jar文件
  4. edittext 属性
  5. ashx中Response.ContentType的常用类型
  6. 在线字符串长度计算,字符串统计工具
  7. PHP中cURL的curl_getinfo函数返回的CURLINFO_HTTP_CODE是0
  8. java运用jsp_JSP:JAVA Bean在JSP中的运用
  9. html设置回到顶部按钮,给网站添加回到顶部按钮
  10. Archlinux下firefox无法使用支付宝控件(aliedit)输入密码/进行支付的解决办法
  11. 浅析芝麻信用分征信体系
  12. CSP-S2020总结
  13. 不解压压缩包直接解析内部文件(zip)
  14. 从GTK、GLib到GObject与GType历史梳理
  15. ex is not shell_linux下环境变量详解
  16. SCI 论文插图格式一般要求
  17. linux mint安装sbt及环境配置
  18. (数据分析)Python-matpoltlib库-绘制条形图
  19. 电子商务网站的建设及发展趋势
  20. 用python编写缠论中枢_【缠论】python 实现

热门文章

  1. 汇编语言-007(ADD_SUB_NEG 、 PUSH和POP指令应用 、 AND,OR,XOR使用 、 条件跳转应用)
  2. 远控免杀5---Veil免杀
  3. 评估报告有效期过期了怎么办_托福成绩过期了怎么办?
  4. 函数signal、sigaction
  5. String | 344. Reverse String
  6. linux里source、. 、sh、bash、./有什么区别
  7. 【大牛疯狂教学】深入拆解java虚拟机百度云
  8. 被面试官问的Android问题难倒了,系列篇
  9. linux mysql 运行状态_Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态...
  10. 通过ceph-deploy搭建ceph 13.2.5 mimic