如何使用Swift中的date类获取当前日期



我正在使我的应用程序能够保存用户任务,现在我想将日期添加到表视图中的字幕中。现在的问题是,我不知道如何在每次用户创建任务时获得当前日期,如果我违反了任何stackOverFlow规则,可以提供一些提示,但很抱歉:(以下是我的表视图的VC代码:

import UIKit
import Foundation
import SwipeCellKit
import CoreData
//MARK: - Protocol to transfer the task Label to main VC:
protocol TaskDelegate {
func updateTaskName(name:String)
}

//MARK: - Tasks View Controller:
class TasksViewController: UITableViewController, SwipeTableViewCellDelegate {



let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext


var tasksArray = [Task]()
var delegate: TaskDelegate?

var taskName = ""

override func viewDidLoad(){
super.viewDidLoad()
loadTasks()


}


override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}



// MARK: - Table view data source

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return tasksArray.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell") as! SwipeTableViewCell

cell.delegate = self
cell.textLabel?.text = tasksArray[indexPath.row].title
cell.imageView?.image = UIImage(named: "icon-unchecked-checkbox.png")
cell.detailTextLabel?.text = ""

return cell
}

// MARK: - Table view delegate methods:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
guard orientation == .right else { return nil }

let deleteAction = SwipeAction(style: .destructive , title: .none) { action, indexPath in
// handle action by updating model with deletion

self.context.delete(self.tasksArray[indexPath.row])
self.tasksArray.remove(at: indexPath.row)


self.delegate?.updateTaskName(name: "")
self.saveTasks()

}
let infoAction = SwipeAction(style: .default, title: .none) { action, indexPath in return }

deleteAction.transitionDelegate = ScaleTransition.default
//        deleteAction.transitionDelegate = ScaleTransition.init(duration: 0.50, initialScale: 0.50, threshold: 0.50)
infoAction.transitionDelegate = ScaleTransition.default


// customize the action appearance

deleteAction.image = UIImage(named: "icon-trash")
infoAction.image = UIImage(named: "icon-more")

return [deleteAction, infoAction]
}



// method to customize the behavior of the swipe actions(the delete action):
func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions {
var options = SwipeOptions()
options.expansionStyle = .destructive
options.transitionStyle = .drag
options.buttonSpacing = 10
options.expansionDelegate = ScaleAndAlphaExpansion.init(duration:  0.15, scale:  0.5, interButtonDelay:  0.30)

return options
}




override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)


if tableView.cellForRow(at: indexPath)?.imageView?.image == UIImage(named: "icon-checked-checkbox.png") {
let imageBox =  UIImage(named: "icon-unchecked-checkbox.png")
tableView.cellForRow(at: indexPath)?.imageView?.image = imageBox

} else {
let imageBox = UIImage(named: "icon-checked-checkbox.png")
tableView.cellForRow(at: indexPath)?.imageView?.image = imageBox
}
}




// MARK: - Class Methods:
//Adding task function:
@IBAction func addPressedButton(_ sender: UIBarButtonItem) {
var textField = UITextField()
let alert = UIAlertController(title: "New Task", message: "Please insert a new task.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
alert.addTextField(configurationHandler: { alertTextField in
alertTextField.placeholder = "Please insert your task"
textField = alertTextField
})




alert.addAction(UIAlertAction(title: "OK", style: .destructive, handler: { action in
//We Add the task into our array of Task objects once we reach into here:


let newTask = Task(context: self.context)
newTask.title = textField.text



self.taskName = newTask.title!
self.delegate?.updateTaskName(name: self.taskName)


self.tasksArray.append(newTask)
self.saveTasks()


self.tableView.reloadData()
}))
self.present(alert, animated: true)
}

func getDate() -> String{
let dateFormatter : DateFormatter = DateFormatter()
//  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let interval = date.timeIntervalSince1970

return dateString
}

}

这是我的桌面视图的图片-https://i.stack.imgur.com/IpoSy.jpg

您可以使用date类获取当前日期

func getDate(date: Date) -> String{
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let dateString = dateFormatter.string(from: date)

return dateString
}

如何使用字幕

cell.detailTextLabel?.text = getDate(date:Date())

最新更新