【问题标题】:invalid date printed打印日期无效
【发布时间】:2021-06-30 04:30:41
【问题描述】:

当执行这个小 sn-p 时,我正在使用来自 mongorc.js(参考:https://raw.githubusercontent.com/gabrielelana/mongodb-shell-extensions/master/released/mongorc.js)的时刻,它的打印“无效日期”

var text = "00000000000000"
var text1 = moment(text).format("MM/DD/YYYY, HH:mm")
print(text1)
moment(text,"YYYYMMDDHHmmss")
var text2=moment(text,"YYYYMMDDHHmm").format("MM/DD/YYYY, HH:mm");
print(text2)

但在 Java 中:

 import java.text.SimpleDateFormat;
 public class DateTest {
public static void main(String[] s) throws Exception
{
    String a = "00000000000000";
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
    System.out.println(format.parse(a));
}}

打印 Sun Nov 30 00:00:00 IST 2

虽然可能不正确,但我不想打印“无效日期”。我哪里做错了?

【问题讨论】:

  • 既然你自己说日期无效,你想打印什么?只是一个想法,您可以使用if-else 声明。
  • 在 Java 中我建议你不要使用 SimpleDateFormatDate。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time APILocalDateTimeDateTimeFormatter。他们也会报告您的日期无效。
  • @OleV.V.该值应默认分配给 01/01/0001 00:00:00,请让我知道这怎么可能?
  • 不知道 moment.js 我相信用一个简单的if-else 声明是可能的(正如我所提到的)(我只评论是因为我知道那个日期是无效的)。跨度>

标签: javascript mongodb java-8 momentjs


【解决方案1】:

我已经对日期值进行了硬编码并且它有效:

var text = "00000000000000"

if(RegExp(/^0*$/).test(text))
{
  text = "00010101000000" 
   moment(text,"YYYYMMDDHHmmss").format("MM/DD/YYYY, HH:mm"); 
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    相关资源
    最近更新 更多