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

1、如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面列举两种类型:

NSString* string [email protected]"20110826134106";

NSDateFormatter*inputFormatter = [[[NSDateFormatter alloc] init]autorelease];

[inputFormattersetLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]];

[inputFormattersetDateFormat:@"yyyyMMddHHmmss"];

NSDate*inputDate = [inputFormatter dateFromString:string];

NSLog(@"date= %@", inputDate);

NSDateFormatter*outputFormatter = [[[NSDateFormatter alloc] init]autorelease];

[outputFormattersetLocale:[NSLocale currentLocale]];

[outputFormattersetDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];

NSString*str = [outputFormatter stringFromDate:inputDate];

NSLog(@"testDate:%@",str);

两次打印的结果为:

date= 2011-08-26 05:41:06 +0000

testDate:2011年08月26日13时41分06秒

2、iOS-NSDateFormatter 格式说明:

G: 公元时代,例如AD公元

yy:年的后2位

yyyy:完整年

MM:月,显示为1-12

MMM:月,显示为英文月份简写,如 Jan

MMMM:月,显示为英文月份全称,如 Janualy

dd:日,2位数表示,如02

d:日,1-2位显示,如 2

EEE:简写星期几,如Sun

EEEE:全写星期几,如Sunday

aa:上下午,AM/PM

H:时,24小时制,0-23

K:时,12小时制,0-11

m:分,1-2位

mm:分,2位

s:秒,1-2位

ss:秒,2位

S:毫秒

常用日期结构:

yyyy-MM-dd HH:mm:ss.SSS

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd

MM dd yyyy

3:新浪微博接口中,取得日期字符串 的转换

NSString*dateStr = @"Wed May 222:27:08+0800 2012";

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

[formater setDateFormat:@"EEE MMM d HH:mm:sszzzz yyyy"];

NSDate* date = [formaterdateFromString:dateStr];

NSLog(@"%@",date);

//NSDate* now = [NSDatenow];

double inter = fabs([datetimeIntervalSinceNow]);

if( inter <60)

NSLog(@"1 mins ago!");

else if(inter< 60*60)

NSLog(@"1 hours ago!");

else if(inter< 60*60*24)

NSLog(@"1 days ago!");

NSLog(@"interval
is %f min", inter/60);

上面代码在真机上运行后,发现取得date为NULL,模拟器正常显示,上网搜索后发现需要设置local, 果然设置后,真机正常

NSLocale* local =[[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"] autorelease];

[formatter setLocale: local];

4、自定义显示的 星期 格式

使用NSDateFormatter转换日期时,得到的英文字母的星期几只能是这样,如Sun, Mon, etc.

如果想得到大写字母的星期几,可以这样:

NSArray*weekdayAry = [NSArray arrayWithObjects:@"SUN",
@"MON", @"TUE",@"WED", @"THU", @"FRI", @"SAT", nil];

dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:NSLocalizedString(@"YYYY.MM.dd.eee",nil)];

//此处更改显示的大写字母的星期几

[dateFormattersetShortWeekdaySymbols:weekdayAry];

[dateFormatter setLocale:[[NSLocale
alloc]initWithLocaleIdentifier:@"en_US"] ]];

NString *str= [dateFormatter stringFromDate:[NSDate
date]];

5、计算距离某一天还有多少时间

NSDate* toDate   = [ [ NSDate alloc]initWithString:@"2012-9-29 0:0:00 +0600" ];

NSDate*  startDate  = [ [ NSDatealloc] init ];

NSCalendar* chineseClendar = [ [ NSCalendar alloc ]initWithCalendarIdentifier:NSGregorianCalendar ];

NSUInteger unitFlags =

NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit |NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit;

NSDateComponents *cps = [chineseClendar components:unitFlagsfromDate:startDate toDate:toDate  options:0];

NSInteger diffHour = [cps hour];

NSInteger diffMin    = [cpsminute];

NSInteger diffSec   = [cps second];

NSInteger diffDay   = [cps day];

NSInteger diffMon  = [cps month];

NSInteger diffYear = [cps year];

NSLog(  @" From Now to %@, diff: Years:%d  Months: %d, Days; %d, Hours: %d, Mins:%d,sec:%d",

[toDate description], diffYear, diffMon, diffDay, diffHour,diffMin,diffSec );

IOS --- 日期时间格式 转换,布布扣,bubuko.com

时间: 2024-10-04 01:31:02

IOS --- 日期时间格式 转换的相关文章

Sql日期时间格式转换

Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONV

JSON日期时间格式转换

1 //JSON日期时间格式转换 2 //使用正则表达式将生日属性中的非数字(\D)删除 3 //并把得到的毫秒数转换成数字类型 4 var birthdayMilliseconds = parseInt(dateObj.replace(/\D/igm, "")); 5 //实例化一个新的日期格式,使用1970 年 1 月 1 日至今的毫秒数为参数 6 var date = new Date(birthdayMilliseconds); 7 var dateStr = date.toL

Sql日期时间格式转换大全

简介:我们经常会用到sql日期转换,这里列出了日期输出为字符串的所有代码 Sql日期时间格式转换: 输出格式 2014-06-12 Select CONVERT(varchar(100), GETDATE(), 23) 输出格式 2014-06-12 22:31:18 Select CONVERT(varchar(100), GETDATE(), 120) 以下是各种转换日期代码号: --------------------------------------------------------

java日期时间格式转换

Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateForma

IOS --- 日期时间格式 更改

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

日期时间格式转换

前端前后端接口处理时经常会遇到需要转换不同时间格式的情况,比如时间戳格式转换成正常日期显示来进行前端展示. 下面是分享一些不同格式的日期转换函数方法. /** * 时间戳转时间 * @param {String} timestamp 时间戳 * @return {Object} 时间 * * 例如: * timestampToDate('1484222693'); // Thu Jan 12 2017 20:04:53 GMT+0800 (中国标准时间) */ /** * 获取特定格式时间 *

SQL Server日期时间格式转换字符串详解

1.日期时间转字符串 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006  10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select  CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100),  GETDATE(), 3): 16/05/06Select CONVERT(var

Sql日期时间格式转换 备用

sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONVERT(varchar(

Sql Server 日期时间格式转换

日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02 CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 语句及查询结果:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(var