当前位置: 首页 > 面试题库 >

转换日期字符串快速

晋坚
2023-03-14
问题内容

我有以下格式的日期字符串:

2016-06-20T13:01:46.457+02:00

我需要将其更改为以下内容:

20/06/2016

以前,我一直使用此库->
SwiftDate来操作日期,但现在不起作用。

我也尝试过类似的东西:

let myDate = self.dateNoteDict[indexPath.row]!
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSxxx"
    let date = dateFormatter.dateFromString(myDate)
    print("date -> \(date)")

但这不起作用。我能怎么做?

提前致谢。


问题答案:

具有小数秒和时区的标准ISO8601日期格式为

yyyy-MM-dd’T’HH:mm:ss.SSSZ

let myDate = "2016-06-20T13:01:46.457+02:00"
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") // edited
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.dateFromString(myDate)!
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateString = dateFormatter.stringFromDate(date)

斯威夫特3:

let myDate = "2016-06-20T13:01:46.457+02:00"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX") // edited
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = dateFormatter.date(from:myDate)!
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateString = dateFormatter.string(from:date)

在macOS 10.13+中,iOS 11+ ISO8601DateFormatter是输入格式化程序的替代方法

let myDate = "2016-06-20T13:01:46.457+02:00"
let inputFormatter = ISO8601DateFormatter()
inputFormatter.formatOptions = [.withFullDate, .withFullTime, .withFractionalSeconds]
let date = dateFormatter.date(from:myDate)!
let outputFormatter = DateFormatter()
outputFormatter.locale = Locale(identifier: "en_US_POSIX")
outputFormatter.dateFormat = "dd/MM/yyyy"
let dateString = dateFormatter.string(from:date)


 类似资料:
  • 问题内容: 我在Swift 3中将字符串转换为日期时遇到问题。这是我的代码,在转换时它会返回nil值。 问题答案: 您为小时和时区设置了错误的格式说明符。用这个: 表示12小时格式,因此没有15小时。请改用 是无效的时区说明符。使用替代 除非将星期五缩短为保加利亚语,否则请使用英语语言环境

  • 问题内容: 我已经为Android应用程序的这段代码苦苦挣扎了一段时间,但我无法理解。我已经阅读并尝试了在stackoverflow和其他地方找到的所有解决方案,但是仍然没有运气。 我想做的是有一个将字符串转换为UTC日期的函数,以及一个将转换为这样的字符串的函数。 这导致:都错了。 我尝试设置为,不走运。 我注意到的另一件事:如果这样做, 它将给我:。 如果有人可以为我提供一些解释/示例代码,我

  • 问题 你的应用程序接受字符串格式的输入,但是你想将它们转换为 datetime 对象以便在上面执行非字符串操作。 解决方案 使用Python的标准模块 datetime 可以很容易的解决这个问题。比如: >>> from datetime import datetime >>> text = '2012-09-20' >>> y = datetime.strptime(text, '%Y-%m-%

  • 问题内容: 我已经写了这个功能: 当我通过日期以及获取输出日期作为 我要去哪里的时候?还做什么,如果我想只得到和 任何帮助表示赞赏 问题答案: 找到以下解决方案…。发布它,因为它也可以帮助其他人:) 输出: 2014-04-24T11:15:00.000 + 02:00

  • 问题内容: 是否可以将“ 20110210”转换为2011-02-10? 我试过,我得到 我究竟做错了什么? 我有新的SimpleDateFormat(“ yyyy-MM-dd”)而不是新的SimpleDateFormat(“ yyyyMMdd”) 问题答案: 这对我有用,不会引发异常:

  • 我有一个日期的字符串格式,但它来自csv文件:20200520T0200,假设它的格式为(yyyyMMdd/T/24小时格式)。 我已经设法读取了csv文件中的行,并将其分离到数组缓冲区中。 我的问题是我不能将字符串格式化成日期,因为我需要使用日期来计算一些值。因为我将使用这个格式化程序来格式化我的arraybuffer的第一个元素的所有值,这是带有字符串“20200406T0300,等等,等等”