10----时间格式的转换

本文介绍了一种在iOS应用中实现日期格式转换的方法,通过使用NSDateFormatter,将固定格式的字符串转换为日期,并进一步将其转换为自定义的格式。文中提供了具体的代码示例和NSDateFormatter格式说明。

   最近一周在做一个类似微博的应用,学习了很多第三方框架的使用,第三方资源的解读。

   一边做也一边复习以前的内容,越简单的东西越是容易被忘记,用到时间格式转换的时候又回去看了一遍以前的笔记。

    把代码放上来,可以参考。


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

NSString* string =@"20150909142845";
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= 2015-09-09 14:28:45 +0000(系统用得标准时间,在模拟器上显示没问题,在真机上显示出错,所以一定要加locale)
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

ISO-8601时间格式是一种广泛使用的日期和时间表示方法,它的格式为yyyy-MM-dd'T'HH:mm:ssZZ。要进行ISO-8601时间格式转换,可以使用不同编程语言的内置函数或库来实现。 在Python中,可以使用datetime模块来进行ISO-8601时间格式转换。可以使用datetime.strptime()函数将字符串解析为datetime对象,然后使用datetime.strftime()函数将datetime对象格式化为所需的字符串格式。例如,要将ISO-8601时间格式的字符串转换为本地时区的时间,可以使用以下代码: ```python import datetime iso_datetime = "2021-10-26T14:53:29+08:00" dt = datetime.datetime.strptime(iso_datetime, "%Y-%m-%dT%H:%M:%S%z") local_dt = dt.astimezone(datetime.timezone(datetime.timedelta(hours=8))) local_datetime_str = local_dt.strftime("%Y-%m-%d %H:%M:%S") print(local_datetime_str) ``` 在Java中,可以使用SimpleDateFormat类来进行ISO-8601时间格式转换。可以使用SimpleDateFormat.parse()方法将字符串解析为Date对象,然后使用SimpleDateFormat.format()方法将Date对象格式化为所需的字符串格式。例如,要将ISO-8601时间格式的字符串转换为本地时区的时间,可以使用以下代码: ```java import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class Main { public static void main(String[] args) throws Exception { String isoDatetime = "2021-10-26T14:53:29+08:00"; SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); Date date = isoFormat.parse(isoDatetime); SimpleDateFormat localFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); localFormat.setTimeZone(TimeZone.getDefault()); String localDatetimeStr = localFormat.format(date); System.out.println(localDatetimeStr); } } ``` 以上代码中,将ISO-8601时间格式的字符串解析为Date对象后,使用SimpleDateFormat将其格式化为本地时区的时间字符串。 请注意,根据不同的编程语言和库的实现,可能需要进行一些调整和配置,以确保正确的ISO-8601时间格式转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python pandas ISO-8601时间转换为本地时间](https://blog.youkuaiyun.com/weixin_43924621/article/details/113920166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ISO8601时间格式转换](https://blog.youkuaiyun.com/gdvfs12/article/details/120973705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值