iOS中date和string互转

本文介绍了如何使用NSDateFormatter在NSDate与NSString之间进行转换的方法。包括将NSDate转换为特定格式的字符串,以及将符合特定格式的字符串转换回NSDate。文章通过实例演示了格式化符的正确用法。

必须知道的内容

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: 毫秒

1.date转string

NSDate *date=[NSDate date];

NSLog(@"%@",date);//2015-11-20 00:37:40 +0000

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器

dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss";//指定转date得日期格式化形式

NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:24:04

dateFormatter.dateFormat=@"yyyy-MM-dd";

NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20

dateFormatter.dateFormat=@"yyyy-MM-dd eeee aa HH:mm:ss";

NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 Friday AM 08:30:28

dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss z";

NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:42:22 GMT+8

其实date转string只需要根据格式来就可以了,但是string转date需要注意事项

2.string转date

NSString *dateStr=@"2012-5-4 4:34:23";

dateFormatter.dateFormat=@"yyyy-mm-dd hh:mm:ss";

//输出:2012-05-03 20:34:23 +0000

/*

转化的类型必须与dateFormat保持一致

2012-->y

5->m

4->d

*/



NSString *dateStr=@"2012-5-4 4:34:23";

dateFormatter.dateFormat=@"yyyy-mm-dd "//后面的hh:mm:ss不写可以吗?答案不写不可以

//dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss";//转化格式

NSLog(@"%@",[dateFormatter dateFromString:dateStr]);


原文:http://www.cnblogs.com/hualuoshuijia/p/4979693.html


### 如何在编程中将字符串换为日期对象 在不同编程语言中,将字符串换成日期对象的方式有所不同。以下是几种常见编程语言中的实现方法。 #### Python 中使用 `datetime` 模块 Python 提供了简单易用的方式来处理时间数据。通过导入 `datetime` 模块可以方便地完成此操作: ```python from datetime import datetime date_string = "2023-10-05" format_str = "%Y-%m-%d" # The format should match the input string pattern. date_object = datetime.strptime(date_string, format_str) print(f"Parsed Date Object: {date_object}") ``` 上述代码展示了如何定义一个特定格式的时间戳并将其解析为对应的日期对象[^4]。 #### Swift 使用 `DateFormatter` 对于 iOS 开发者来说,在 Swift 中可以通过创建 `DateFormatter` 实例来进行类似的换工作: ```swift let dateString = "October 5, 2023" let dateFormatter = DateFormatter() dateFormatter.dateFormat = "MMMM d, yyyy" if let dateObj = dateFormatter.date(from: dateString){ print("Converted Date:", dateObj) } else { print("Invalid date.") } ``` 这段 Swift 代码片段说明了设置合适的日期格式模板的重要性,这有助于正确识别输入的字符串形式[^1]. #### Java 使用 `SimpleDateFormat` Java 程序员也可以利用内置类库轻松达成目标。这里给出一段简单的例子展示怎样把 ISO8601 时间串成 java.util.Date 类型的对象: ```java import java.text.ParseException; import java.text.SimpleDateFormat; public class Main { public static void main(String[] args) throws ParseException { String strDate = "2023-10-05T14:48:32Z"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); try{ System.out.println(formatter.parse(strDate)); }catch(ParseException e){ e.printStackTrace(); } } } ``` 该实例强调了选择恰当模式字符组合以匹配源字符串结构的关键作用[^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值