我正在尝试使用以下方式显示日期和时间:
dateFormatter.dateStyle = DateFormatter.Style.full
我正在使用的代码是:EEEE,在HH:mm d MMMM yyyy,但出现错误。
EEEE,d MMMM yyyy at HH:mm
我正尝试在2019年1月30日(星期三)20:00展示
答案 0 :(得分:1)
您一直想要那种格式吗?通常,您会使用本地化格式,例如:
let formatter = DateFormatter()
formatter.setLocalizedDateFormatFromTemplate("EEEEdMMMMyyyyHHmm")
let string = formatter.string(from: date)
对于显示以下内容的英国用户:
2019年1月30日,星期三,20:00
但是对于显示以下内容的美国用户:
2019年1月30日,星期三,20:00
或者更好的是,根本不要设置dateFormat
,而让日期/时间样式为您做所有事情:
let formatter = DateFormatter()
formatter.dateStyle = .full
formatter.timeStyle = .short
let string = formatter.string(from: date)
这将显示英国用户
2019年1月30日,星期三,20:00
但是美国用户会看到
2019年1月30日,星期三,晚上8:00
通过这种方式,您可以同时保留设备当前区域设置的首选日期格式和时间格式。如果用户的电话配置为显示24小时制,请显示24小时制。但是,如果将用户的手机配置为显示12小时制,则可以这样做。
但是,无论您采用哪种方式,都可以设置dateFormat
或dateStyle
/ timeStyle
,但不能同时设置两者。做一个或另一个。
如果您确定以固定的“ 2019年1月30日,星期三,20:00”显示日期,即使他们可能是美国用户,也不希望/希望使用该格式的日期,则可以指定dateFormat
(尽管我不推荐):
let formatter = DateFormatter()
formatter.dateFormat = "EEEE, d MMMM yyyy 'at' HH:mm"
let string = formatter.string(from: date)