标签: java-calendar

如何比较LocalDate和Calendar类的对象?

我试图比较两个具有不同类型的对象的日期.有没有办法将Calendar对象转换为LocalDater,反之亦然?

谢谢 :)

public class ABC{

    public static void main(String args[]){
        Calendar c1= Calendar.getInstance();
        LocalDate c2= LocalDate.now();      
        System.out.println(c1.compareTo(c2));
    }
}
Run Code Online (Sandbox Code Playgroud)

java localdate java-calendar

7
推荐指数
1
解决办法
1487
查看次数

在Java中使用国家代码获取地区的时区

我必须传递带有时区信息的消息 (jms),例如 (America/Los_Angeles),但我只有国家/地区名称和代码。如果可能的话,用 Java 代码获取时区信息。我在某处读到这个:

System.out.println(TimeZone.getTimeZone("US"));
Run Code Online (Sandbox Code Playgroud)

但它的输出为

sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Run Code Online (Sandbox Code Playgroud)

我期待“美国/洛杉矶”的名单,......

java timezone google-api-java-client java-8 java-calendar

5
推荐指数
2
解决办法
1万
查看次数

Java日历与Android日历有什么区别

我是 Android 新手,我正在尝试获取当前日期,但 AndroidCalendar类需要 API 24。我需要支持较旧的设备,并且Time自 API 22 以来不推荐使用该类。

问题是如何在 API 23 上获取当前日期,我通过使用java.util.Calendar适用于所有版本的方法解决了这个问题。那么我应该使用什么,Android 日历还是 Java 日历?

请注意,使用 Android 日历时,日、月和年只是整数。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    day =android.icu.util.Calendar.getInstance().get(android.icu.util.Calendar.DAY_OF_MONTH);
    month = android.icu.util.Calendar.getInstance().get(android.icu.util.Calendar.MONTH);
    year = android.icu.util.Calendar.getInstance().get(android.icu.util.Calendar.YEAR);
}
else {
    day = java.util.Calendar.getInstance().get(java.util.Calendar.DAY_OF_MONTH);
    month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH);
    year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);
}
Run Code Online (Sandbox Code Playgroud)

仅使用 Java 日历时,无需检查 API 版本

day = java.util.Calendar.getInstance().get(java.util.Calendar.DAY_OF_MONTH);
month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH);
year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);
Run Code Online (Sandbox Code Playgroud)

java android calendar android-calendar java-calendar

4
推荐指数
1
解决办法
1934
查看次数

Java 8 Date API - 同一天的年份不同但时间不同

对于我只能假设是时区问题,以下代码会在同一天生成不同的一年中的值,但是时间不同:

注意,代码是用Kotlin编写的

fun main(args: Array<String>) {

    val middaySundayAfterEpoch = Instant.EPOCH + Duration
        .ZERO
        .plusDays(3)
        .plusHours(12)

    val almostMidnightSundayAfterEpoch = Instant.EPOCH + Duration
        .ZERO
        .plusDays(3)
        .plusHours(23)

    println(getWeekOfYear(middaySundayAfterEpoch))
    println(getWeekOfYear(almostMidnightSundayAfterEpoch))
}

fun getWeekOfYear(instant: Instant): Int {
    val calendar: Calendar = Calendar.getInstance()
    calendar.time = Date.from(instant)

    return calendar.get(Calendar.WEEK_OF_YEAR)
}
Run Code Online (Sandbox Code Playgroud)

结果

1

2

假设

  • 星期日,12:00实际上是星期日,13:00在日历中
  • 星期日,23:00实际上是星期一,00:00在日历中

如何修改此选项以忽略时区,以便两个时间都在同一周内发生?

java kotlin java-date java-calendar

3
推荐指数
1
解决办法
65
查看次数

将日期字符串转换为 ZonedDateTime

我收到一个查询参数日期,如yyyy-MM-DD (2022-03-08).
我想将其转换为java.util.Calendar/java.util.GregorianCalendar格式。

所以我的想法是转换:String -> ZonedDateTime -> Calendar。

我做了什么:

ZonedDateTime parsedDate = ZonedDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
//date = 2022-03-08
Run Code Online (Sandbox Code Playgroud)

即使格式正确,我也得到:

Text '2022-03-08' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {},ISO resolved to 2022-03-08 of type java.time.format.Parsed
Run Code Online (Sandbox Code Playgroud)

我发现发生此错误是因为我的字符串没有时区。

一个建议是使用LocalDate

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
 LocalDate date = LocalDate.parse(fecha, formatter);
Run Code Online (Sandbox Code Playgroud)

但我不能用作localDate的论据ZonedDateTime.parse()

我还能尝试什么?

java spring-boot zoneddatetime java-calendar

3
推荐指数
1
解决办法
3872
查看次数

如何在Java中获取给定日期的上周六/上周六?

例如:- String fromDate="09/18/2020"; 我希望我的实际 fromDate 是上周六,即 "09/12/2020" 。

另一个例子:- String fromDate="09/01/2020"; 我希望我的实际 fromDate 是上周六,即 "08/29/2020" 。

java date datetime-format java-calendar

1
推荐指数
1
解决办法
140
查看次数

Java日历:我想从日历中删除特定的星期几

更多细节我想摆脱一周的特定日子.

我的意思是:{星期六(1),星期日(2),星期一(3),星期二(4),星期三(5),星期四(6),星期五(7)}.

删除周日:{周六(1),周日(2),周一(3),周二(4),周三(5)}.

因此,我可以获得从特定开始日期到现在的排除天数的天数.

提示:我必须使用Java日历

*****问题是动态指定日期

java date-range weekday java-calendar

0
推荐指数
1
解决办法
493
查看次数

Java从String返回BigInteger

我从日期生成数字,我使用的是Integer.parseInt(myDateNumberString).

我的问题是,如果数字太大,它会给我一个错误.

public Integer currentDate(){
        String current_date = new SimpleDateFormat("yyyyMMddHHmm").format(Calendar.getInstance().getTime());
        //int _current_date = Integer.parseInt(current_date); // Error, too big number
        int _current_date = new BigInteger(current_date).intValue();
        return _current_date; // Error, output: -51212897
    }
Run Code Online (Sandbox Code Playgroud)

我希望获得价值,201812250203 如果我的日期格式没有mm它是好的,但我需要声明它.

java java-calendar

0
推荐指数
1
解决办法
121
查看次数

获取变量的当前年份-Java

我有三个变量需要使用本年度的年份,即从现在开始的一年之前和从现在开始的两年之前,使用Java。这样的事情会起作用吗?

String DNRCurrentYear = new SimpleDateFormat("yyyy").format(new Date());
Run Code Online (Sandbox Code Playgroud)

还是我需要将年份定int为减去一年然后减去两年?

我将如何获得当年减去一年,当年减去两年?

java java-date java-calendar

-1
推荐指数
2
解决办法
165
查看次数