iOS关于时间、时间戳操作

#pragma mark -获取字符串形式的时间戳

-(NSString *)getTimeStampString

{

//获取时间和时间戳

NSDate* timeStamp = [NSDatedateWithTimeIntervalSinceNow:0];

NSTimeInterval temp=[timeStamptimeIntervalSince1970]*1000;

return [NSStringstringWithFormat:@"%.0f", temp];

}

#pragma mark - 时间戳转为NSString

/**

*  @author zm

*

*  @brief  时间戳转为NSString

*

*  @param timeStamp   字符串格式的时间戳

*  @param formatString format格式(默认yyyy-MM-dd HH:mm:ss.SSS)

*

*  @return 返回字符串

*/

-(NSString *)event_stringFromTimeStamp:(NSString *)timeStamp formatString:(NSString *)formatString

{

NSDate *updatetimestamp = [selff_getDateByString:timeStamp];

NSString *dateFormat =@"yyyy-MM-dd HH:mm:ss.SSS";

if (formatString) {

dateFormat = formatString;

}

NSDateFormatter *formatter = [[NSDateFormatteralloc]init];

[formatter setDateStyle:NSDateFormatterMediumStyle];

[formatter setTimeStyle:NSDateFormatterShortStyle];

[formatter setDateFormat:dateFormat];

NSString *dateString = [formatterstringFromDate:updatetimestamp];

return dateString;

}

#pragma mark -获取字符串形式的当前时间(默认yyyy-MM-dd HH:mm:ss)

+(NSString *)getDateTimeString:(NSDateFormatter *)dateFormatter

{

if (dateFormatter ==nil) {

dateFormatter = [[NSDateFormatteralloc]init];

[dateFormattersetDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

}

NSDate *dateNow = [NSDatedate];

return [dateFormatterstringFromDate:dateNow];

}

#pragma mark -将字符串形式的时间转换为时间戳

+(UInt64)getTimeStampByDateString:(NSString *)dateString

{

NSDateFormatter *XNNDateFormatter = [[NSDateFormatteralloc]init];

[XNNDateFormattersetDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

NSDate *XNNDate= [XNNDateFormatterdateFromString:dateString];

if(XNNDate){

return [XNNDatetimeIntervalSince1970]*1000;

}else{

return -99999;

}

}

#pragma mark -字符串转为日期

- (NSDate *)stringToDate:(NSString *)strdate

{

NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *retdate = [dateFormatter dateFromString:strdate];

[dateFormatter release];

return retdate;

}

#pragma mark -日期转为字符串

- (NSString *)dateToString:(NSDate *)date

{

NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *strDate = [dateFormatter stringFromDate:date];

[dateFormatter release];

return strDate;

}

#pragma mark -将UTC日期字符串转为本地时间字符串

//输入的UTC日期格式2013-08-03T04:53:51+0000

-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate

{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

//输入格式

[dateFormatter setDateFormat:@"yyyy-MM-dd‘T‘HH:mm:ssZ"];

NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];

[dateFormatter setTimeZone:localTimeZone];

NSDate *dateFormatted = [dateFormatter dateFromString:utcDate];

//输出格式

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *dateString = [dateFormatter stringFromDate:dateFormatted];

[dateFormatter release];

return dateString;

}

#pragma mark -将本地日期字符串转为UTC日期字符串

//本地日期格式:2013-08-03 12:53:51

//可自行指定输入输出格式

-(NSString *)getUTCFormateLocalDate:(NSString *)localDate

{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

//输入格式

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *dateFormatted = [dateFormatter dateFromString:localDate];

NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];

[dateFormatter setTimeZone:timeZone];

//输出格式

[dateFormatter setDateFormat:@"yyyy-MM-dd‘T‘HH:mm:ssZ"];

NSString *dateString = [dateFormatter stringFromDate:dateFormatted];

[dateFormatter release];

return dateString;

}

- (NSString *)getUTCFormatDate:(NSDate *)localDate

{

NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

NSTimeZone *timeZone = [NSTimeZonetimeZoneWithName:@"UTC"];

[dateFormatter setTimeZone:timeZone];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];

NSString *dateString = [dateFormatter stringFromDate:localDate];

[dateFormatter release];

return dateString;

}

- (NSDate *)getLocalFromUTC:(NSString *)utc

{

NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

NSTimeZone *timeZone = [NSTimeZonelocalTimeZone];

[dateFormatter setTimeZone:timeZone];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];

NSDate *ldate = [dateFormatter dateFromString:utc];

[dateFormatter release];

return ldate;

}

#pragma mark -世界标准时间UTC /GMT 转为当前系统时区对应的时间

- (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate

{

//设置源日期时区

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];//或GMT

//设置转换后的目标日期时区

NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];

//得到源日期与世界标准时间的偏移量

NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];

//目标日期与本地时区的偏移量

NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];

//得到时间偏移量的差值

NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;

//转为现在时间

NSDate* destinationDateNow = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate] autorelease];

return destinationDateNow;

}

如:

//2013-08-03T12:53:51+0800     UTC时间格式下的北京时间,可以看到北京时间= UTC + 8小时。

NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd‘T‘HH:mm:ssZ"];

NSDate *localDate = [dateFormatter dateFromString:@"2013-08-03T04:56:52+0000"];      +0000 表示的是当前时间是个世界时间。

[dateFormatter release];

NSLog(@"now Time = %@",[selfgetNowDateFromatAnDate:localDate]);

结果:

2013-08-03 12:57:33.391 xxxx[2547:c07] now Time = 2013-08-03 12:56:52 +0000

 

 以上注意一点,在转出来后带的时间是原参数anydate的时区,因此切不可再用NSDateFormatter 转换。否则会多增加一个时区的时间值。应该使用如下来提取字符串

 

NSString *str = [NSStringstringWithFormat:@"%@",[selfgetNowDateFromatAnDate:localDate]];

NSLog(@"str = %@",str);

时间: 2024-10-06 19:46:06

iOS关于时间、时间戳操作的相关文章

iOS:时间格式化(标准时间转为时间戳、时间戳转为标准时间、时间戳转为日期)

新建一个NSString(Time)分类,创建类方法实现时间的转换 .h文件 #import <Foundation/Foundation.h> @interface NSString (KJTime) //时间戳--->时间 +(NSString *)transToTime:(NSString *)timsp; //时间戳--->日期 +(NSString *)transToDate:(NSString *)timsp; //时间---->时间戳 +(NSString *)

对于社保截止日接口的学习记录---对于php时间的操作(date_time和timestamp)

首先,是对于时间的操作,通过几个例子来说吧 $remind_time_now = date('Y-m-d',$end_time).'09:00:00'; 这个是对时间戳进行转换,date函数有很多的转换方式,第一个参数就是表示你需要的格式,如果有时候,你需要只需要时间戳提供年月日,然后几点几分这些数据你自己定的话,可以用这种方式将时间戳转化为年月日的形式,然后拼接上时间的数据,要空格 然后 几点:几分:几秒. $y = substr($remind_date,0,4); $m = substr(

IOS --- 日期时间格式 转换

1.如何如何将一个字符串如" 20110826134106"装化为任意的日期时间格式,下面列举两种类型: NSString* string [email protected]"20110826134106"; NSDateFormatter*inputFormatter = [[[NSDateFormatter alloc] init]autorelease]; [inputFormattersetLocale:[[[NSLocale alloc] initWith

iOS-时间类date详解

NSDate定义时间的类 NSDate是一个时间类,在编写程序时,我们很少遇到.今天我突然碰到,感觉很生疏. 给大家发个博客,让大家也都温习一下,哈哈! 兄弟用的时候突然发现竟然有一些bug,大家用时可以写验证了再用. 1.定义:NSDate *date =[NSDate date];//当前时间对时间的加减 2.对时间的操作 NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];//从当前时间开始,若干秒后的时间,参数代

关于时间的操作(JavaScript版)——页面显示格式:年月日 上午下午 时分秒 星期

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

关于时间的操作(Java版)——获取给定时间与当前系统时间的差值(以毫秒为单位)

import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Test { /** * 获取给定时间与当前系统时间的差值(以毫秒为单位) * * @author GaoHuanjie */ public long getTimeDifferenceBetweenSystemTimeAndParamTime(String paramTime) { DateFor

关于时间的操作(Java版)——获取距离系统时间N天后的日期时间信息

import java.util.Calendar; import java.util.TimeZone; public class Test { /** * 获取距离系统时间N天后的日期时间信息 * * @author GaoHuanjie */ public String getDateAfterNdays(int days){ Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); cale

关于时间的操作(Java版)——将毫秒转换为年月日时分秒

第一种方式: import java.util.Calendar; import java.util.TimeZone; public class Test { /** * 将毫秒转换为年月日时分秒 * * @author GaoHuanjie */ public String getYearMonthDayHourMinuteSecond(long timeMillis) { Calendar calendar = Calendar.getInstance(TimeZone.getTimeZo

关于时间的操作(JavaScript版)——年月日三级联动(默认显示系统时间)

这个功能是大学时自己使用纯JavaScript写的,没有借助Jquery,呵呵呵,看起来有点繁琐,可是在当时依稀的记得功能实现后自己好好的高兴一把了呢,从现在来看那时候的自己是多么的幼稚.多么的无知: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>年月日三级联动(默认显示系统时间)</title> <

关于时间的操作(JavaScript版)——年月日三级级联(默认依次显示请选择年、请选择月和请选择日)

这篇博客和前一篇博客基本相同,只是显示的默认值不同: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>年月日三级级联(默认依次显示请选择年.请选择月和请选择日)</title> <meta http-equiv="content-type" content="text/ht