java - 为什么Java Date对象设计成获取不到日期?

标签 java

<分区>

为什么 Java 不明确如何从 Date 对象获取月份中的第几天?

.getDay() 已弃用,推荐使用 Calendar.get(Calendar.MONTH)

这对我来说意义不大,我很好奇这种弃用背后的理由是什么。

我有一个 Date 对象,我只想要日期。这是有史以来最自然的事情,我无法调用它。这种设计是错误的,因此我的代码没有按应有的方式工作:

private String getIngivningsDag() {

    return ""+ingivningsDatum.getDate();
}



private String getIngivningsMonth() {

    return ""+ingivningsDatum.getmonth();
}

private String getIngivningsYear() {

    return ""+ingivningsDatum.getYear();
}

更新

这是“解决方案”:

public String getIngivningsDag() {

    Calendar cal = Calendar.getInstance();
    cal.setTime(ingivningsDatum);
    return cal.get(Calendar.DAY_OF_WEEK_IN_MONTH)+"";
}

如果没有 Java 的设计错误和使用方法参数而不是奇怪的类方法和工厂,它应该看起来简单而美好:

public String getIngivningsDag() {

    return ingivningsDatum.getDay(Calendar.GREGORIAN, "SE");
}

最佳答案

Date 表示一个时刻,但具体的日/月/时/等在不同的日历和时区中是不同的。因此,要知道特定时间戳是哪一天,您应该使用 Calendar TimezoneDateFormat。例如。 jdk 至少有两个日历实现 - BuddistCalendar 和 GregorianCalendar。默认日历取决于用户的偏好。

此外,请查看 Jodatime 库 - 它具有更多功能并且更适合在 Java 中管理日期。

关于java - 为什么Java Date对象设计成获取不到日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13011687/

相关文章:

java - 对具有重复值的 HashMap 进行排序

Java 继承 -> 无法引用构造函数错误中的实例字段?

Java UDP 数据报包 - 切片数据以适应缓冲区大小

Java "java.lang.NoSuchMethodError: main"

java - 如何在登录请求后在移动应用程序中存储 session

java - java中如何在两个布局之间移动

类型列表和类型集合的Java数据结构

java - "Catch"一种方法的多个按钮

java - 足球预测程序encog : Inconsistent predictions

java - 根据netbeans中的单选按钮切换组件的 'enable'属性