当前位置: 首页 > news >正文

网站建设有什么服务推荐wordpress主题xiu

网站建设有什么服务,推荐wordpress主题xiu,设计有关的网站,泰安人才网电焊工iOS开发-格式化时间显示刚刚几分钟前几小时前等 在开发中经常遇到从服务端获取的时间戳#xff0c;需要转换显示刚刚、几分钟前、几小时前、几天前、年月日等格式。 主要用到了NSCalendar、NSDateComponents这两个类 NSString *result nil;NSCalendarUnit components (NSC…iOS开发-格式化时间显示刚刚几分钟前几小时前等 在开发中经常遇到从服务端获取的时间戳需要转换显示刚刚、几分钟前、几小时前、几天前、年月日等格式。 主要用到了NSCalendar、NSDateComponents这两个类 NSString *result nil;NSCalendarUnit components (NSCalendarUnit)(NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday|NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond);NSDateComponents *nowDateComponents [[NSCalendar currentCalendar] components:components fromDate:timeNowDate];NSDateComponents *msgDateComponents [[NSCalendar currentCalendar] components:components fromDate:anotherday];一、NSCalendar与NSDateComponents NSCalendar日历支持日历的计算。 NSDateComponents 一个日期是有年月日时分秒组成的components这个类的作用就是把日期拆分成单独的年、月、日、时、分、秒 假设有某个时间为customDate,类型为NSDate如何知道改日期的具体年份、月、日呢。这个就要用到NSDateComponents NSDateComponents的方法 - (NSDateComponents *)components:(NSCalendarUnit)unitFlags fromDate:(NSDate *)dateunitFlags为枚举类型如下 typedef NS_OPTIONS(NSUInteger, NSCalendarUnit) {NSCalendarUnitEra kCFCalendarUnitEra,NSCalendarUnitYear kCFCalendarUnitYear,NSCalendarUnitMonth kCFCalendarUnitMonth,NSCalendarUnitDay kCFCalendarUnitDay,NSCalendarUnitHour kCFCalendarUnitHour,NSCalendarUnitMinute kCFCalendarUnitMinute,NSCalendarUnitSecond kCFCalendarUnitSecond,NSCalendarUnitWeekday kCFCalendarUnitWeekday,NSCalendarUnitWeekdayOrdinal kCFCalendarUnitWeekdayOrdinal,NSCalendarUnitQuarter API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0)) kCFCalendarUnitQuarter,NSCalendarUnitWeekOfMonth API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0)) kCFCalendarUnitWeekOfMonth,NSCalendarUnitWeekOfYear API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0)) kCFCalendarUnitWeekOfYear,NSCalendarUnitYearForWeekOfYear API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0)) kCFCalendarUnitYearForWeekOfYear,NSCalendarUnitNanosecond API_AVAILABLE(macos(10.7), ios(5.0), watchos(2.0), tvos(9.0)) (1 15),NSCalendarUnitCalendar API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0)) (1 20),NSCalendarUnitTimeZone API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0)) (1 21), };常用的类型说明 NSCalendarUnitEra -- 纪元单位。 NSCalendarUnitYear -- 年单位。 NSCalendarUnitMonth -- 月单位。范围为1-12 NSCalendarUnitDay -- 天单位。范围为1-31 NSCalendarUnitHour -- 小时单位。范围为0-24 NSCalendarUnitMinute -- 分钟单位。范围为0-60 NSCalendarUnitSecond -- 秒单位。范围为0-60 NSCalendarUnitWeekOfMonth -- 月包含的周数。 NSCalendarUnitWeekOfYear -- 年包含的周数。 NSCalendarUnitWeekday -- 工作日单位。范围为1-7fromDate对应的日期 //根据系统区域设置获取用户的当前日历 NSCalendar *calendar [NSCalendar currentCalendar]; //获取对应包含年月日的日期组件 NSDateComponents *components [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:customDate]; [components year];//年 [components month];//月 [components day];//日二、实现获取时间戳与当前时间进行比对 从服务端获取的时间戳需要转换显示刚刚、几分钟前、几小时前、几天前、年月日等格式。 例如显示刚刚 long dateTime [anotherday timeIntervalSince1970]; long nowTimestamp [timeNowDate timeIntervalSince1970];if ((dateTime-zeroTime)0) { //今日if ((nowTimestamp - dateTime) 60) {//如果是一分钟内的消息显示刚刚return 刚刚;}return timeArr[3]; }完整代码如下 #import “SDTimeFormatUtil.h” implementation SDTimeFormatUtil/**格式化时间param timeStamp 时间秒数return 字符串*/(NSString *)timeFormaterWithTimeStamp:(long)timeStamp {try {NSDate *anotherday [NSDate dateWithTimeIntervalSince1970:timeStamp];NSDateFormatter *formatter [[NSDateFormatter alloc]init];[formatter setDateFormat:yyyy-MM-dd-HH:mm];NSDate *timeNowDate [NSDate date];NSString *nowDate [formatter stringFromDate:timeNowDate];NSArray *nowtimeArr [nowDate componentsSeparatedByString:-];NSString *nowYearStr nowtimeArr[0];NSString *dateStr [formatter stringFromDate:anotherday];NSArray *timeArr [dateStr componentsSeparatedByString:-];NSString *yearStr timeArr[0];NSString *result nil;NSCalendarUnit components (NSCalendarUnit)(NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday|NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond);NSDateComponents *nowDateComponents [[NSCalendar currentCalendar] components:components fromDate:timeNowDate];NSDateComponents *msgDateComponents [[NSCalendar currentCalendar] components:components fromDate:anotherday];double OnedayTimeIntervalValue 24*60*60; //一天的秒数//为了判断当前时间是否为未来时间BOOL futureTime ([anotherday timeIntervalSince1970]-[[NSDate date] timeIntervalSince1970]0)?YES:NO;if (futureTime) {return [NSString stringWithFormat:%/%/%,timeArr[0],timeArr[1],timeArr[2]];}int year [yearStr intValue]-[nowYearStr intValue];if (year0) {//过去今年以前return [NSString stringWithFormat:%/%/%,timeArr[0],timeArr[1],timeArr[2]];}int zeroTime [self zeroOfDate];long dateTime [anotherday timeIntervalSince1970];long nowTimestamp [timeNowDate timeIntervalSince1970];if ((dateTime-zeroTime)0) { //今日if ((nowTimestamp - dateTime) 60) {//如果是一分钟内的消息显示刚刚return 刚刚;}return timeArr[3];}if ((zeroTime-dateTime)24*3600) {//昨日return 昨天;}if([timeNowDate timeIntervalSinceDate:anotherday] 7 * OnedayTimeIntervalValue) {//一周内NSString *weekDay [SDTimeFormatUtil weekdayStr:msgDateComponents.weekday];return weekDay;}return [NSString stringWithFormat:%/%,timeArr[1],timeArr[2]];} catch (NSException *exception) {//出现异常return [NSString stringWithFormat:%ld,timeStamp];} } (NSString*)weekdayStr:(NSInteger)dayOfWeek {static NSDictionary *daysOfWeekDict nil;daysOfWeekDict {(1):星期日,(2):星期一,(3):星期二,(4):星期三,(5):星期四,(6):星期五,(7):星期六,};return [daysOfWeekDict objectForKey:(dayOfWeek)]; }/**今日时间范围内的具体划分param date datereturn 今日时间格式*/(NSString *)timeStringOfToday:(NSDate *)date {NSDate *today [NSDate date];NSCalendar *gregorian [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];unsigned int unitFlags NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;NSDateComponents *components [gregorian components:unitFlags fromDate:date toDate:today options:0];/*if ([components hour]) {return [NSString stringWithFormat:%ld小时前,(long)[components hour]];}if ([components minute]) {return [NSString stringWithFormat:%ld分钟前,(long)[components minute]];}*/if ([components hour]) {//几个小时前return [NSString stringWithFormat:%02ld:%02ld,components.hour,components.minute];}if ([components minute]) {//多少分钟前return [NSString stringWithFormat:%02ld:%02ld,components.hour,components.minute];}if ([components second]) {return 刚刚;}return 刚刚; }/**今日零点return 整型*/(int)zeroOfDate {NSCalendar *calendar [NSCalendar currentCalendar];NSDateComponents *components [calendar components:NSUIntegerMax fromDate:[NSDate date]];components.hour 0;components.minute 0;components.second 0;NSTimeInterval ts (int)[[calendar dateFromComponents:components] timeIntervalSince1970];return ts; }/**返回格式为YYYY-dd-mm的时间字符串return 时间字符串*/(NSString *)formatterDayDate:(long)timeStamp {NSDate *date [SDTimeFormatUtil getDateTimeFromTimeStamp:timeStamp];NSDateFormatter *dateFormatter [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:YYYY-MM-dd];NSString *dateStr nil;if (self) {dateStr [dateFormatter stringFromDate:date];}return dateStr; }/**将时间戳转换为NSDate类型param timeStamp timeStampreturn date*/(NSDate *)getDateTimeFromTimeStamp:(long)timeStamp {return [NSDate dateWithTimeIntervalSince1970:timeStamp]; }end三、小结 iOS开发-格式化时间显示刚刚几分钟前几小时前等 从服务端获取的时间戳需要转换显示刚刚、几分钟前、几小时前、几天前、年月日等格式。 NSCalendar与NSDateComponents。 学习记录每天不停进步。
http://www.hkea.cn/news/14299507/

相关文章:

  • 如何在各大网站发布信息中山网上房地产
  • 静态网站如何做自适应移动端湖北省建筑信息平台
  • 郑州企业如何建网站公司网站建设项目详情
  • 渝北网站制作搭建网站需要什么语言
  • 计算机机应用网站建设与维护电商自学网
  • 建设明星网站的目的高校信息化建设网站系统微信
  • 响应式相册网站模板企业管理软件系统
  • 开篇网站推广深圳百度总部
  • 无锡百度竞价推广学习网站建设优化
  • 网站收录平台方法哪些做直播卖食品的网站有哪些
  • 三明网站seo汉化wordpress插件
  • 网站怎么做可以合法让别人充钱可以生成静态网站源码
  • 校园网站建设 方案论证深圳公司网站建设服务为先
  • 视频网站开发的论文响应式网站开发现状
  • 网站登录密码忘记了怎么办网站建站合同
  • 网站模板建设二级目录现在有人还做网站吗
  • 国通快速建站给公司网站做seo
  • 网站虚拟服务器宁波网络公司做网站
  • 济宁建站公司建网站能赚钱吗赚多少
  • 网站建设 流程高端网站设计制作
  • 网站开发外文参考文献上海个人网站制作公司
  • 自己做的工艺品在哪个网站上可以卖织梦网站地图生成
  • 国内最大网站制作公司定制营销型网站公司
  • 科技网站制作推广app怎么做
  • 北京工程建设信息网站上海备案证查询网站查询网站查询系统
  • 现在流行什么做网站wordpress教程 ppt
  • 茂名营销网站开发做网站的步骤是什么
  • 苏州微网站制作网站布局 种类
  • 弄个做网站公司上市装修公司排名前十强
  • 太平洋网站建设中国建设项目招标网站