Swift:时间格式化-NSDateFormatter

13 篇文章 0 订阅
10 篇文章 0 订阅

在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理

例如:

func getNowTheTime() -> String {
    // create a date formatter
    let dateFormatter = DateFormatter()
    // setup formate string for the date formatter
    dateFormatter.dateFormat = "yyyy-MM-dd_HH:mm:ss"
    // format the current date and time by the date formatter
    let dateStr = dateFormatter.string(from: Date())
    return dateStr
}

2018-04-03_17:40:39

func getTheTimeOfYMD() -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let dateStr = dateFormatter.string(from: Date())
    return dateStr
}

2018-04-03

func getTimeFormatForFileExtension() -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/yy HH:mm"
    let dateStr = dateFormatter.string(from: Date())
    return dateStr
}

03/04/18 17:40

func getTimeFormatForFileExtension2() -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ss"
    let dateStr = dateFormatter.string(from: Date())
    return dateStr
}

03/04/2018 17:40:39


######################################################################################################################

字符说明

(:)

时间分隔符。在某些区域设置中,可以使用其他字符表示时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由您的应用程序的当前区域性值确定。

(/)

日期分隔符。在某些区域设置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的应用程序的当前区域性确定。

(%)

用于表明不论尾随什么字母,随后字符都应该以单字母格式读取。也用于表明单字母格式应以用户定义格式读取。有关更多详细信息,请参见下面的内容。

d

将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。

dd

将日显示为带前导零的数字(如 01)。

EEE

将日显示为缩写形式(例如 Sun)。

EEEE

将日显示为全名(例如 Sunday)。

M

将月份显示为不带前导零的数字(如一月表示为 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %M。

MM

将月份显示为带前导零的数字(例如 01/12/01)。

MMM

将月份显示为缩写形式(例如 Jan)。

MMMM

将月份显示为完整月份名(例如 January)。

gg

显示时代/纪元字符串(例如 A.D.)

h

使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。如果这是用户定义的数字格式中的唯一字符,请使用 %h。

hh

使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。

H

使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %H。

HH

使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。

m

将分钟显示为不带前导零的数字(例如 12:1:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %m。

mm

将分钟显示为带前导零的数字(例如 12:01:15)。

s

将秒显示为不带前导零的数字(例如 12:15:5)。如果这是用户定义的数字格式中的唯一字符,请使用 %s。

ss

将秒显示为带前导零的数字(例如 12:15:05)。

f

显示秒的小数部分。例如,ff 将精确显示到百分之一秒,而 ffff 将精确显示到万分之一秒。用户定义格式中最多可使用七个 f 符号。如果这是用户定义的数字格式中的唯一字符,请使用 %f。

t

使用 12 小时制,并对中午之前的任一小时显示大写的 A,对中午到 11:59 P.M 之间的任一小时显示大写的 P。如果这是用户定义的数字格式中的唯一字符,请使用 %t。

tt

对于使用 12 小时制的区域设置,对中午之前任一小时显示大写的 AM,对中午到 11:59 P.M 之间的任一小时显示大写的 PM。

对于使用 24 小时制的区域设置,不显示任何字符。

y

将年份 (0-9) 显示为不带前导零的数字。如果这是用户定义的数字格式中的唯一字符,请使用 %y。

yy

以带前导零的两位数字格式显示年份(如果适用)。

yyy

以四位数字格式显示年份。

yyyy

以四位数字格式显示年份。

z

显示不带前导零的时区偏移量(如 -8)。如果这是用户定义的数字格式中的唯一字符,请使用 %z。

zz

显示带前导零的时区偏移量(例如 -08)

zzz

显示完整的时区偏移量(例如 -08:00)


格式显示

M/d/yy

12/7/58

d-MMM

7-Dec

d-MMMM-yy

7-December-58

d MMMM

7 December

MMMM yy

December 58

hh:mm tt

08:50 PM

h:mm:ss t

8:50:35 P

H:mm

20:50

H:mm:ss

20:50:35

M/d/yyyy H:mm

12/7/1958 20:50



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Foundation库是Swift中最重要的库之一,提供了大量的基础工具和数据类型,包括字符串处理、日期和时间、数字、集合、文件管理、网络通信等等。以下是一些常用的Foundation库的用法: 1. 字符串处理 Swift中的字符串处理基本都是通过Foundation库中的NSString类实现的。常用的字符串处理方法包括: - 字符串拼接:使用 "+" 操作符或者字符串插值 - 字符串裁剪:使用substring方法 - 字符串替换:使用replacingOccurrences方法 - 字符串转换:使用toInt等方法 2. 日期和时间 Foundation库提供了NSDate和NSDateComponents类来处理日期和时间。常用的方法包括: - 获取当前日期和时间:使用NSDate和NSCalendar类 - 日期和时间的格式:使用NSDateFormatter类 - 日期和时间的比较:使用compare方法 3. 数字 Foundation库提供了NSNumber和NSDecimalNumber类来处理数字。常用的方法包括: - 数字的转换:使用intValue、doubleValue等方法 - 数字的比较:使用compare方法 - 数字的加减乘除:使用add、subtract、multiply、divide方法 4. 集合 Foundation库提供了NSArray、NSMutableArray、NSSet和NSMutableSet等集合类。常用的方法包括: - 集合的遍历:使用for-in循环或者enumerateObjectsUsingBlock方法 - 集合的过滤:使用filter方法 - 集合的排序:使用sort方法 5. 文件管理 Foundation库提供了NSFileManager类来处理文件和文件夹。常用的方法包括: - 文件和文件夹的创建和删除:使用createDirectoryAtPath、createFileAtPath、removeItemAtPath方法 - 文件和文件夹的复制和移动:使用copyItemAtPath、moveItemAtPath方法 - 文件和文件夹的属性获取:使用attributesOfItemAtPath方法 6. 网络通信 Foundation库提供了NSURL、NSURLRequest和NSURLSession等类来处理网络通信。常用的方法包括: - 发送网络请求:使用NSURLSessionDataTask类的resume方法 - 下载文件:使用NSURLSessionDownloadTask类 - 上传文件:使用NSURLSessionUploadTask类 以上是Foundation库的一些常用用法,当然还有很多其他的功能和类,需要根据具体的需求来使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值