C# 为RESTful服务格式化日期时间的最佳方法是什么?

C# 为RESTful服务格式化日期时间的最佳方法是什么?,c#,android,ios,datetime,iso8601,C#,Android,Ios,Datetime,Iso8601,我们使用的是一个使用ASP.NET Core 2.1构建的后端服务器,它使用ISO 8601将日期时间返回到客户端Web/Android/iOS 问题是后端使用可变的秒分数格式化日期和时间,Android和iOS都不希望使用固定的yyyy-MM-ddThh:MM:ss.SSSZ格式 现在,我们知道IOS11中有一个合适的ISO8601反序列化程序,但我们不能从IOS9开始;对于Android,我们还没有找到解决方案 如果我们需要在后端实现一个定制的DateTime格式化程序,并提供一个固定的Da

我们使用的是一个使用ASP.NET Core 2.1构建的后端服务器,它使用ISO 8601将日期时间返回到客户端Web/Android/iOS

问题是后端使用可变的秒分数格式化日期和时间,Android和iOS都不希望使用固定的yyyy-MM-ddThh:MM:ss.SSSZ格式

现在,我们知道IOS11中有一个合适的ISO8601反序列化程序,但我们不能从IOS9开始;对于Android,我们还没有找到解决方案

如果我们需要在后端实现一个定制的DateTime格式化程序,并提供一个固定的DateTime格式,并且有可能打破标准(我们也希望序列化DateTimeOffset以进行时区管理),或者在客户端找到一个解决方案,那么我们就会遇到困难

W3C明确表示,要与ISO 8601兼容,需要支持可变的秒数:


最好的未来解决方案是什么?

试试这样的解决方案

val format = SimpleDateFormat("yyyy-MM-ddThh:mm:ss.SSSZ")
textView.text = format.format(date)

这不适用于以下ISO 8601格式:1997-07-16T19:20Z 1997-07-16T19:20:59Z 1997-07-16T19:20+01:00年,这确实不是一个容易的问题)。也许你可以在这里找到解决方案Java
SimpleDataFormat
类早已过时,并且出了名的麻烦。你在Android上使用Java吗
java.time
,现代java日期和时间API可以直接完成这些工作。它是从API级别26内置的,也可以后端口到早期的API级别。我认为这是一个经得起未来考验的解决方案。