Java日期到MongoDB日期(含Gson)

k3fezbri  于 2022-11-06  发布在  Java
关注(0)|答案(2)|浏览(183)

简介
我目前正在做一个项目,它定期将几个java对象保存到MongoDB数据库中。

问题

将java Date转换为Json Mongo,给予以下结果:

new Date() -> "Jan 27, 2022, 2:47:24 AM"

但是这种格式不符合MongoDB Date,MongoDB被认为是一个字符串而不是一个Date。

受影响的代码

第一个

问题

如何创建符合Gson序列化的对象?

例如:

new Date() -convert with Gson-> "2022-01-27T01:47:24.000+00:00"
8tntrjer

8tntrjer1#

您可以不直接创建Gson对象,而是使用GsonBuilder并进行一些配置,这样就可以获得所需的结果。

代码:

public static void main(String[] args) {
    Date date = new Date();
    System.out.println(date);

    Gson gson = new GsonBuilder()
            .setDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSXXX")
            .create();

    System.out.println(gson.toJson(date));
}

输出:

Thu Feb 03 23:18:18 EET 2022
"2022-02-03T11:18:18.650+02:00"

更新日期:

该模式的免责声明如下:

  • y年(例如122012
  • M一年中的月份
  • d一个月中的第几天
  • h一天中的某个小时,1-12
  • m一小时中的分钟,0-59
  • s一分钟内的秒数,0-59
  • S毫秒,以秒为单位,0-999
  • '文本分隔符转义
  • X- ISO 8601时区(-08; -0800 ;(一米十九英寸)

z-常规时区(太平洋标准时间;太平洋标准时间;格林尼治标准时间-08:00)
Z- RFC 822时区(-0800
添加了一些额外的代码,以便更好地理解Github上的输出。
您只需检查此处使用的区域设置:

System.out.println(Locale.getDefault());

在我的计算机上,它是:

en_US
hk8txs48

hk8txs482#

您需要使用SimpleDateFormatDateTimeFormatter类将Date从一种表示形式转换为另一种表示形式。
Refer

相关问题