如何从mongodb中检索日期时间?通过将数据与jDateChosser Java进行比较


private void showdataTable_btnActionPerformed(java.awt.event.ActionEvent evt) {                                                  
try {
DateFormat df = new SimpleDateFormat("YYYY-mm-dd'T'HH:MM:ss'Z'");  //set date format
String set = df.format(dateChoos1.getDate());           //add value to set
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("datetimes", set);                       //where date via set(date)
DBCursor cursor = table.find(whereQuery);
while (cursor.hasNext()) {
DBObject obj = cursor.next();
String ip_address = (String) obj.get("ip_address");
String mac_address = (String) obj.get("mac_address");
Date datetimes = (Date) obj.get("datetimes");
String url = (String) obj.get("url");
model.insertRow(model.getRowCount(), new Object[]{datetimes, ip_address, mac_address, url});
}
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}

您的格式YYYY-mm-dd'T'HH:MM:ss'Z'不正确。让我们讨论一下这种格式的所有错误。

  1. 您使用了Y而不是y:符号Y用于Week year,而y用于Year。检查年份和基于周的年份之间的差异?了解更多信息
  2. 您已将mm用于月份:该月份的正确符号为M
  3. 您已使用MM分钟:分钟的正确符号为m
  4. 您已将Z括在单引号内:符号Z用于Time zone,而'Z'只是一个字符文字。您可能想将+00:00的时区偏移量格式化为Z,为此,实际上应该使用X

因此,正确的格式如下:

yyyy-MM-dd'T'HH:mm:ssX

具有建议格式的演示:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(sdf.format(date));
}
}

输出:

2021-01-14T08:13:01Z

请注意,java.util的日期时间API及其格式API、SimpleDateFormat已过时且为错误产品。建议完全停止使用它们,并切换到现代日期时间API。

  • 无论出于何种原因,如果您必须坚持使用Java 6或Java 7,您可以使用ThreeTen BackportJava.time的大部分功能向后移植到Java 6&7
  • 如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查通过desugaring和如何在Android项目中使用ThreeTenABP提供的Java 8+API

使用Date#toInstantjava.util.Date对象(传统类型(转换为java.time.Instant(现代类型(。Instant表示时间线上的一个瞬时点,对于大多数JSON操作来说应该刚好足够。Instant#toString返回符合ISO-8601标准的UTC时区偏移的日期-时间字符串。

演示:

import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
Instant instant = date.toInstant();
// Print the value of instant#toString
System.out.println(instant);
OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC);
System.out.println(odt);
// Custom format
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
System.out.println(dtf.format(odt));
}
}

输出:

2021-01-14T08:28:35.659Z
2021-01-14T08:28:35.659Z
2021-01-14T08:28:35Z

相关内容

  • 没有找到相关文章

最新更新