当前位置: 首页 > 面试题库 >

Java Date()给出错误的日期

令狐弘益
2023-03-14
问题内容

我有一个简单的方法,应该获取当前日期,将其放入某种格式,然后将其作为String返回。到目前为止,一切都很好(上次尝试于1月31日进行),但由于某种原因,当我今天尝试使用它时,它返回字符串“2013-02-43”。

显然,二月份没有43天,而且我不知道为什么要返回此日期。我到处都在寻找解决方案,但似乎没有一个适合我遇到的特定问题。这是代码:

public String getDate(){
    DateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD");
    Date date = new Date();

    return dateFormat.format(date);
}

仅出于记录目的,我尝试使用Calendar.getInstance()等获得相同结果。有趣的是,当我尝试

get(Calendar.DAY_OF_MONTH)

它返回12,所以在某个数字正确的地方,但两者之间出了问题。

谢谢


问题答案:

DD表示年份,而dd表示月份。您要yyyy-MM-dd(区分大小写)。

public String getDate(){
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();

    return dateFormat.format(date);
}


 类似资料:
  • 我有一个简单的方法,可以获取当前日期,将其转换为特定格式,然后作为字符串返回。到目前为止,它还不错(上次尝试是在1月31日左右),但由于某种原因,当我今天尝试它时,它返回字符串“2013-02-43”。 现在很明显,2月份没有43天,我不知道为什么它会返回这个。我到处寻找解决方案,但似乎没有一个适合我的具体问题。以下是代码: 为了记录在案,我尝试过使用Calendar.get实例()等。结果相同。

  • 问题内容: 我创建了一些小的方法作为Util类,例如以下代码: 并且,进行了非常简单的运行,如下所示: 结果是一个很奇怪的日期-> 2017/07/187 搜索了类似的问题,并尝试了TimeZone,Locale,但没有帮助。有什么建议 ? 顺便说一句,这是我的环境: Windows7 x86 JDK 1.8.0.131 x86 Oxygen corrosion of x86 问题答案: 您格式化

  • 问题内容: 我有一个具有日期字段的类,该日期字段表示一条数据的“有效起始日期”。定义如下: 从我从数据库中提取日期并显示它的那一点似乎一切正常。如果我在前端选择日期2003年9月18日,那么当我检查数据库时要保存足够的日期,即保存日期(数据库为MySQL 5.5.9列类型为DATE)。但是,当我调出列表记录时,显示的日期是2003年9月17日-提前一天。 如果我选择年初或晚于2003年3月26日或

  • 我试图用< code>Proguard生成一个APK,每次都出现这个错误。它警告我一些我找不到的内部类,并且名称看起来很模糊,如下所示: 类错误:(b . a . a . a . a . a . b . o) 这是我的proGuard文件: 这是我得到的完整错误日志: 错误:警告:忽略匿名内部类的“内部类”属性 错误:(b.a.a.a.a.b.o) 未附带“错误:关联的封闭方法”属性。此类可能是由

  • 我使用下面的代码来格式化日期。但是当我以不正确的格式给出数据时,它会给出意想不到的结果。 在上述情况下,输出为-formattedVal:0009-02-05。 它不是抛出解析异常,而是解析值并给我一个不正确的输出。有人能帮我理解这种反常的行为吗。

  • 问题内容: 我从控制器中的java()发送此日期,输入的类型为 如下: 当我得到这个日期与ajax为: 转换成 那么,为什么我得到错误的一小时约会呢? 解 我们通过以下方式解决它 因为这是夏令时(DST)或夏令时的问题。好文章 问题答案: 我认为这可能是 夏令时的 问题。您可以检查客户端的时区和服务器的时区。(Web服务器或SQL Server)