【问题标题】:Convert string of format "19-07-2018 08:10:24" in date and time both different string format将日期和时间格式为“19-07-2018 08:10:24”的字符串转换为不同的字符串格式
【发布时间】:2018-07-20 11:18:48
【问题描述】:

我想将格式为“19-07-2018 08:10:24”的字符串转换为日期时间格式。如果日期是今天,那么它应该是“02:12 am”。如果日期是昨天,那么它应该像“昨天”。否则它应该是“DD/MM/yy”格式。目前我有字符串格式的时间和日期。

我想要字符串类型的最终答案。如果答案是“DD/MM/YY”,那么它应该是字符串格式。

【问题讨论】:

  • 你能分享一下你到目前为止尝试过的代码吗
  • 字符串转日期的答案有很多,请看。对于昨天的事情,你可以找到两个日期之间的日期数,如果它是负数,那么日期就是昨天。

标签: ios iphone swift date format


【解决方案1】:

使用日历日期函数:

func format(date: Date) -> String {
  let calendar = Calendar.current
  if calendar.isDateInToday(date) {
    // process your "Today" format
    return ...
  }
  if calendar.isDateInYesterday(date) {
    // process your "Yesterday" format
    return ...
  }
  if calendar.isDateInTomorrow(date) {
    // process your "Tomorrow" format
    return ...
  }
  // process your "full date/time format"
  return ...
}

您可以在此处阅读有关日历功能的更多信息:https://developer.apple.com/documentation/foundation/calendar

【讨论】:

  • 感谢您的回答... :)
【解决方案2】:
let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"//19-07-2018 08:10:24
    let date = dateFormatter.date(from: "15-07-2018 08:10:24")

    dateFormatter.dateFormat = "dd/MM/yyyy"
    let startDate = dateFormatter.string(from: date!)

    let dateToday = (Calendar.current as NSCalendar).date(byAdding: .day, value: 0, to: Date(), options: [])! as Date
    dateFormatter.dateFormat = "dd/MM/yyyy"
    let strdateToday = dateFormatter.string(from: dateToday1)

    let dateYesterday = (Calendar.current as NSCalendar).date(byAdding: .day, value: -1, to: Date(), options: [])! as Date
    dateFormatter.dateFormat = "dd/MM/yyyy"
    let strdateYesterday = dateFormatter.string(from: dateYesterday1)

    if(startDate == strdateToday)
    {
        dateFormatter.dateFormat = "HH:mm"
        let startDate = dateFormatter.string(from: date!)
        print(startDate)
    }
    else if(startDate == strdateYesterday)
    {
         print("Yesterday")
    }
    else
    {
        print(startDate)
    }

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多