如何使用Swift 4显示日期和时间

时间:2019-01-30 21:04:43

标签: swift

我正在尝试使用以下方式显示日期和时间:

dateFormatter.dateStyle = DateFormatter.Style.full

我正在使用的代码是:EEEE,在HH:mm d MMMM yyyy,但出现错误。

EEEE,d MMMM yyyy at HH:mm

我正尝试在2019年1月30日(星期三)20:00展示

1 个答案:

答案 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小时制,则可以这样做。

但是,无论您采用哪种方式,都可以设置dateFormatdateStyle / 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)