【问题标题】:How to convert the System Date into date format into Date Datatype如何将系统日期转换为日期格式为日期数据类型
【发布时间】:2017-07-15 09:13:34
【问题描述】:

我想在 DateFormatter 的帮助下将当前日期转换为 Date 数据类型。我希望日期为 dd/mm/yyyy 格式,其数据类型应为 Date 而不是字符串。 这是我尝试过的代码和我得到的输出。

let date = Date()
print(date)//output - 2017-02-24 13:39:01 +0000
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let tempDate = dateFormatter.string(from: date)
print(tempDate)//output - 24/02/2017
let currentDate = dateFormatter.date(from: tempDate)
print(currentDate!)//output - 2017-02-23 18:30:00 +0000

【问题讨论】:

  • 您没有指定小时/分钟/秒,因此一旦您将其从字符串转换回日期,它将为 0(一天的开始)。但是因为我猜你在印度,时区与 UTC 相差 +5:30,18:30:00+0000 是你一天的开始,它等于 00:00:00 +5:30。如果您稍后将其转换回字符串,您应该有“24/02/2017”
  • 我不想要小时/分钟/秒这就是我指定“dd/MM/yyyy”的原因
  • 更改 dateFormatter 时区 dateFormatter.timeZone = TimeZone(secondsFromGMT:##)
  • 还是一样的@MohamedMostafa
  • 你到底想要什么?你能澄清一下你最后想要什么吗?

标签: swift date dateformatter


【解决方案1】:

如果您希望print(currentDate!) 的输出等于2017-02-24 00:00:00 +0000,请将dateFormatter timeZone 设置为GMT

dateFormatter.timeZone = TimeZone(secondsFromGMT:0)

更新

我想我理解你的需要。您想从 Date 对象中截断时间。

let date = Date()
print(date)
let calendar = NSCalendar.current
let components = calendar.dateComponents([.day, .month, .year], from: date)
let currentdate = calendar.date(from: components)
print(currentdate!)

【讨论】:

  • 我不想要那个输出,我希望输出是 dd/mm/yyyy 格式,并且它的数据类型应该是日期而不是字符串。如果我想要你提到的输出,我已经得到了。
  • 更新不会从Date 截断时间。那是不可能的。更新后的代码所做的是将Date 更改为当地时间午夜。这与“截断时间”相去甚远。
猜你喜欢
  • 1970-01-01
  • 2016-10-13
  • 2018-02-12
  • 1970-01-01
  • 2014-02-25
  • 2023-03-30
  • 2011-08-13
  • 2021-04-10
  • 1970-01-01
相关资源
最近更新 更多