45 lines
1.8 KiB
Swift
45 lines
1.8 KiB
Swift
//
|
|
// DateExtension.swift
|
|
// Nextcloud Cookbook iOS Client
|
|
//
|
|
// Created by Vincent Meilinger on 14.12.23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
extension Date {
|
|
static func convertUTCStringToLocalString(utcDateString: String, withFormat format: String = "yyyy-MM-dd HH:mm:ss") -> String? {
|
|
// DateFormatter for parsing the UTC date string
|
|
let inputFormatter = DateFormatter()
|
|
inputFormatter.dateFormat = format
|
|
inputFormatter.timeZone = TimeZone(secondsFromGMT: 0) // UTC
|
|
|
|
// DateFormatter for converting to local time string
|
|
let outputFormatter = DateFormatter()
|
|
outputFormatter.dateFormat = format // You can modify this format for different output styles
|
|
outputFormatter.timeZone = TimeZone.current // Device's local time zone
|
|
|
|
// Convert the string to Date and then to local time string
|
|
if let date = inputFormatter.date(from: utcDateString) {
|
|
return outputFormatter.string(from: date)
|
|
} else {
|
|
return nil // Return nil if the input string is not in the correct format
|
|
}
|
|
}
|
|
|
|
static func convertISOStringToLocalString(isoDateString: String, withFormat format: String = "yyyy-MM-dd HH:mm:ss") -> String? {
|
|
let inputFormatter = ISO8601DateFormatter()
|
|
// DateFormatter for converting to local time string
|
|
let outputFormatter = DateFormatter()
|
|
outputFormatter.dateFormat = format // You can modify this format for different output styles
|
|
outputFormatter.timeZone = TimeZone.current // Device's local time zone
|
|
|
|
// Convert the string to Date and then to local time string
|
|
if let date = inputFormatter.date(from: isoDateString) {
|
|
return outputFormatter.string(from: date)
|
|
} else {
|
|
return nil // Return nil if the input string is not in the correct format
|
|
}
|
|
}
|
|
}
|