首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >iOS DateFormatter dateFormat fromTemplate中允许的格式说明符是什么?

iOS DateFormatter dateFormat fromTemplate中允许的格式说明符是什么?
EN

Stack Overflow用户
提问于 2019-03-10 18:57:32
回答 1查看 2.9K关注 0票数 8

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

  1. dateFormat指示我..。
  2. 日期和时间编程指南。这些页面中没有一个列出格式说明符。所以我检查了相关文件..。
  3. 核心基础日期和时间规划指南没有一个列表。
  4. 数据格式指南有一个章节标题“使用格式字符串来指定自定义格式”,但它只是指向上面的(1)。数据格式指南中的其他页面都没有格式说明符。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-10 22:36:59

我将在评论中详述答案,并举几个例子。对于iOS 7和更高版本,格式代码在这里:模式。这张桌子太大了,无法在这里全部复制,但这里有几个帮助我开始工作的方法。有关所有格式和解释,请参见该链接。

  • 时代:G (AD)、GGGG (Anno Domini)
  • 年份:y (1984),yy (84),yyyy (1984)
  • 月份: MM,MM,MMM,MMMM,MM。也:l
  • 月日: d,d
  • 周日名称: E,EEEE,EEEE

这里有一个游乐场碎片,我发现这有助于探索这些。

代码语言:javascript
运行
复制
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"
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55091213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档