gpt4 book ai didi

c# - 类似于 C# 的 Java SimpleDateFormat

转载 作者:行者123 更新时间:2023-11-30 03:22:39 27 4
gpt4 key购买 nike

我必须获得格式为 {"Date":"2013-09-11T14:47:57.8895887+02:00"} 的今天日期。这是因为我的 Json 服务是为 Windows Phone 和 C# 代码研究的。

我试过这个方法:

public static Date getTodayDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSSZ:Z");
Date date = new Date();
String dateString = dateFormat.format(date);
Date today = parseFromNormalStringToDate(dateString);
return today;
}

但我得到了这个返回

2013-09-16T11:47:55.235+0200:+0200;

感谢您的帮助!

最佳答案

这里有两处需要更改。首先是格式。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"); // This should work for you. Though I must say 6 "S" is not done. You won't get milliseconds for 6 precisions.
Date date = new Date();
String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON

第二件事,格式化日期是您需要放入 JSON 而不是将其解析回 Date 的日期。但是 Date 没有格式化选项。您只能使用 SDF 以您需要的格式获取日期的字符串表示形式。

例如:-

public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX");
Date date = new Date();
String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON
System.out.println(dateString); // Output
}

这个输出是

2013-09-16T15:39:16.000257+05:30

以毫秒为单位的 6 位精度是不可能的。如果你在 Java 7 中看到 SDF 的文档,你可以找到这个:-

enter image description here

突出显示的示例是您需要的示例,但精度为 6 毫秒,这是不可能的。因此,您可以使用 6 个 S,但它只会在实际的 3 毫秒数字之前添加 3 个前导零!这是您的情况下唯一可能的解决方法!

编辑:-

SimpleDateFormat Android 不包含 X。它提供 Z 代替。因此,您的新格式字符串将是

yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); // For Android

关于c# - 类似于 C# 的 Java SimpleDateFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com