如何正确格式化日期

How to format date correctly

如何设置此日期的格式以使其可读。我希望它显示例如:"January 7th, 2018 7:30am"。我试图查看其他答案,但不确定在哪里添加扩展名。

    let date = Date(timeIntervalSince1970: request.timestamp / 1000)
    dateCell.textLabel?.text = date.description



class Request {
var key:String
var sender:String
var recipient:String
var name:String
var location:String
var when:String
 var whereStr:String
var message:String
var timestamp:Double
var status:String

init(dict: [String: Any]) {
    self.key       = dict["key"] as? String ?? ""
    self.sender    = dict["sender"] as? String ?? ""
    self.recipient = dict["recipient"] as? String ?? ""
    self.name      = dict["name"] as? String ?? ""
    self.location  = dict["location"] as? String ?? ""
    self.when      = dict["when"] as? String ?? ""
    self.whereStr  = dict["where"] as? String ?? ""
    self.message   = dict["message"] as? String ?? ""
    self.timestamp = dict["timestamp"] as? Double ?? 0.0
    self.status    = dict["status"] as? String ?? ""
}

您应该使用 DateFormatter:

let formatter = DateFormatter()
formatter.format = "MMMM d, yyyy HH:mm a"
let dateString = formatter.string(from: date)

试试这个

 func getCurrentDateTimeFromTimeStamp(timeStapm:String)->String{
    let date = NSDate(timeIntervalSince1970:Double(timeStapm)!/1000)
    let formatter = DateFormatter()
    formatter.dateFormat = "MMMM d, yyyy HH:mm a"
    return formatter.string(from: date as Date)
 }

传递时间戳并根据您的要求以字符串格式获取日期,只需传递 dateFormat。

这样使用

dateCell.textLabel?.text = self.getCurrentDateTimeFromTimeStamp(timeStapm:"pass your timestamp")

您可以在应用程序的任何位置添加扩展程序,并为 comlpete 应用程序添加一个(同名)扩展程序。往下看

import UIKit

class ViewControllerHellBoy: UIViewController
{
override func viewDidLoad() {
    super.viewDidLoad()


    // Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

       func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

     dateCell.textLabel?.text = self.userFriendlyFullDate()
}




}  
extension Date: Dateable {
var  formatter: DateFormatter { return DateFormatter() }

/** Return a user friendly hour */
func userFriendlyFullDate() -> String {
    // Customize a date formatter
    formatter.dateFormat = ""MMMM d, yyyy HH:mm a"" //Use format you want to
    formatter.timeZone = TimeZone(abbreviation: "UTC") . // Time zone you wishes to provide

    return formatter.string(from: self)
}

这就是您使用扩展程序的方式。您还可以创建单独的 class 并保留所有扩展名。

使用 dateFormatter 对象根据需要设置日期样式

let format = DateFormatter()
    format.format = "MM/dd/yyyy"

//get your date in string like this
let dateInString = format.string(from: date)

// this will give you "10/02/2018"

您可以访问 date format examples 查看不同的格式以及如何获取它们。