IOS DateForMatter DateFormat from模板中允许哪些格式说明符? [英] What are the format specifiers allowed in iOS DateFormatter dateFormat fromTemplate?

查看:41
本文介绍了IOS DateForMatter DateFormat from模板中允许哪些格式说明符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我找不到DateFormatter.dateFormat(fromTemplate:options:locale:)的模板参数中允许的格式说明符的列表。

  1. dateFormat指向...
  2. Date and Time Programming Guide。这些页面都没有列出格式说明符。因此,我查看了建议的相关文档...
  3. Date and Time Programming Guide for Core Foundation没有列表。
  4. Data Formatting Guide有一个小节标题"Use Format Strings to Specify Custom Format",但它只是将我指向上面的(1)。《数据格式指南》中的其他页面都没有格式说明符。

有人知道Apple在哪里记录这些说明符吗?

推荐答案

我将用一些例子详细说明评论中的答案。对于iOS 7和更高版本,格式代码如下:http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns。这张桌子太大了,不能在这里全部复制,但这里有一些帮助我开始的。有关所有格式和说明,请参阅该链接。

  • 时代:G(AD),GGGG(Anno Domini)
  • 年份:y(1984),yy(84),yyyy(1984)
  • 月:M、MM、MMM、MMMM、MMM。另请注意:l
  • 月份日期:d,dd
  • 星期几名称:e、eeee、eeee、eeee

这里是我发现对探索这些内容有帮助的操场片段。

import Foundation

let components = DateComponents(
    calendar: Calendar(identifier: .gregorian), 
    timeZone: nil, 
    era: 1, 
    year: 1984, 
    month: 1, 
    day: 2, 
    hour: nil, minute: nil, second: nil, 
    nanosecond: nil, weekday: nil, 
    weekdayOrdinal: nil, quarter: nil, 
    weekOfMonth: nil, weekOfYear: nil, 
    yearForWeekOfYear: nil)
let aDate = Calendar(identifier: .gregorian).date(from: components)!
let en_US = Locale(identifier: "en_US")
var df = DateFormatter()
func formatdate(_ template: String) -> String {
    let custom = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: en_US)
    df.dateFormat = custom
    return df.string(from: aDate)
}

formatdate("Mdyyyy") // "1/2/1984"
formatdate("yyyyMMdd") // "01/02/1984"
formatdate("yyyyMMMdd") // "Jan 02, 1984"
formatdate("yyyyMMMMdd") // "January 02, 1984"
formatdate("yyyyMMMMMdd") // "J 02, 1984"
formatdate("yyyyG") // "1984 AD"
formatdate("yyyyGGGG") // "1984 Anno Domini"
formatdate("yyyyMMMddE") // "Mon, Jan 02, 1984"
formatdate("yyyyMMMddEEEE") // "Monday, Jan 02, 1984"
formatdate("yyyyMMMddEEEEE") // "M, Jan 02, 1984"

formatdate("MdYYYY") // "1/2/1984"
formatdate("YYYYMMdd") // "01/02/1984"
formatdate("YYYYMMMdd") // "Jan 02, 1984"
formatdate("YYYYMMMMdd") // "January 02, 1984"
formatdate("YYYYMMMMMdd") // "J 02, 1984"
formatdate("YYYYG") // "1984 AD"
formatdate("YYYYGGGG") // "1984 Anno Domini"
formatdate("YYYYMMMddE") // "Mon, Jan 02, 1984"
formatdate("YYYYMMMddEEEE") // "Monday, Jan 02, 1984"
formatdate("YYYYMMMddEEEEE") // "M, Jan 02, 1984"

这篇关于IOS DateForMatter DateFormat from模板中允许哪些格式说明符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆