c# - 类似于 C# 的 Java SimpleDateFormat

标签 c# java android datetime simpledateformat

我必须获得格式为 {"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/

相关文章:

c# - 正则表达式失败

java - 如何覆盖用 ClassLoader 实例化的类的方法

Java 程序在 raspberry pi 上短时间后无错误地卡住

java - 如何舍入 Double 数据类型值

android - Firebase 9.0.2 身份验证错误代码

Android 写入具有错误权限的文件

c# - 列出从特定类/接口(interface)继承的所有类

c# - LINQ 多连接挂起

c# - With.Parameters.ConstructorArgument 与 ninject 2.0

java - 将 Button 添加到 TableView 并将 Button 的 textProperty 绑定(bind)到 TableView 对象的属性