iphone時間戳與時間之間的相互轉換,隨機數的使用(轉)
設置時間顯示格式:
NSString* timeStr = @"2011-01-26 17:40:50";
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateStyle:NSDateFormatterMediumSty
le];
[formatter setTimeStyle:NSDateFormatterShortStyl
e];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; //
----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
//設置時區,這個對於時間的處理有時很重要
//例如你在國內發佈信息,用戶在國外的另外一個時區,你想讓用戶看到正確的發佈時間就得注意時區設置,時間的換算.
//例如你發佈的時間爲2010-01-26 17:40:50,那麼在英國愛爾蘭那邊用戶看到的時間應該是多少呢?
//他們與咱們有7個小時的時差,因此他們那還沒到這個時間呢...那就是把將來的事作了
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
NSDate* date = [formatter dateFromString:timeStr];
//------------將字符串按formatter轉成nsdate
NSDate *datenow = [NSDate date];//如今時間,你能夠輸出來看下是什麼格式
NSString *nowtimeStr = [formatter stringFromDate:datenow];
//----------將nsdate按formatter格式轉成nsstring 時間轉時間戳的方法:
NSString *timeSp = [NSString stringWithFormat:@"%d", (long)[datenow timeIntervalSince1970]];
NSLog(@"timeSp:%@",timeSp); //時間戳的值
時間戳轉時間的方法
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSinc
e1970:1296035591];
NSLog(@"1296035591
= %@",confromTimesp);
NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];
NSLog(@"confromTimespStr =
%@",confromTimespStr);
下面來講隨機數
:
rand() 可得到僞隨機數。可是僅僅這樣寫的話,同一段代碼每次運行程序得到的隨機數相同。
由於在調用rand()前自動調用了srand(1); 這條語句。 只有當srand()的形參是變化的時每次運行得到的隨機數纔不一樣。
用什麼樣的隨時變化的參數呢? 用time(NULL),
即srand((unsigned)time(NULL)); rand(); 這樣每次運行獲得的隨機數不一樣。
如何得到某個區間的隨機數?
---- 若是是區間[0,n),
rand()%n 就能夠了
---- 若是是區間[m,n),
rand()%n+m 就能夠了
----若是是區[0,1), rand()/double(RAND_MAX) 就能夠能夠了。(RAND_MAX在cstdlib裏有定義)
這裏有更詳細的介紹:
http://blog.csdn.net/zhoubl668/archive/2009/01/04/3704604.aspx
使用的例子:
int a =arc4random() + 16; //從16到20的隨機數
int b = random()0; // 從0到100的隨機數
NSLog(@"arc4random:
%d",a);
NSLog(@"random:
%d",b);
srandom(time(NULL)); //將隨機數種子重置,
歡迎關注本站公眾號,獲取更多信息