欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS 时间和时间戳之间转化示例

程序员文章站 2024-02-12 20:50:40
以毫秒为整数值的时间戳转换 时间戳转化为时间nsdate - (nsstring *)timewithtimeintervalstring:(nsstr...

以毫秒为整数值的时间戳转换

时间戳转化为时间nsdate

- (nsstring *)timewithtimeintervalstring:(nsstring *)timestring
{
  // 格式化时间
  nsdateformatter* formatter = [[nsdateformatter alloc] init];
  formatter.timezone = [nstimezone timezonewithname:@"shanghai"];
  [formatter setdatestyle:nsdateformattermediumstyle];
  [formatter settimestyle:nsdateformattershortstyle];
  [formatter setdateformat:@"yyyy年mm月dd日 hh:mm"];
  
  // 毫秒值转化为秒
  nsdate* date = [nsdate datewithtimeintervalsince1970:[timestring doublevalue]/ 1000.0];
  nsstring* datestring = [formatter stringfromdate:date];
  return datestring;
}

时间转化为时间戳

    // 当前时间
   nsdate* date = [nsdate datewithtimeintervalsincenow:0];
  nstimeinterval a=[date timeintervalsince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒
  nsstring *timestring = [nsstring stringwithformat:@"%.0f", a]; //转为字符型

通过比较时间与当前时间返回年月日的方法

- (void)getbabydetailage:(nsstring *)date
{
  // 获得日期对象
  nsdateformatter *formatter_ = [[nsdateformatter alloc] init];
  formatter_.dateformat = @"yyyy-mm-dd hh:mm:ss";
  nsdate *createdate = [formatter_ datefromstring:date];
  
  nscalendar *gregorian = [[ nscalendar alloc ] initwithcalendaridentifier : nscalendaridentifiergregorian];
  nsuinteger unitflags = nscalendarunitday | nscalendarunitmonth | nscalendarunityear;
  nsdatecomponents *components = [gregorian components:unitflags fromdate:createdate todate:[nsdate date] options: 0 ];
  
  nsinteger years = [components year];
  nsinteger months = [components month ];
  nsinteger days = [components day ];
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。