标签: java.util.calendar

将时间设置为00:00:00

我在重置Java时遇到了问题.对于给定的日期,我想将小时数设置为00:00:00.

这是我的代码:

/**
     * Resets milliseconds, seconds, minutes and hours from the provided date
     *
     * @param date
     * @return
     */
    public static Date trim(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR, 0);

        return calendar.getTime();
    }
Run Code Online (Sandbox Code Playgroud)

问题是,有时候是时间12:00:00,有时是时候00:00:00,当我查询数据库中保存的实体07.02.2013 00:00:00和存储的实际实体时间时,12:00:00查询失败.

我知道12:00:00 == 00:00:00!

我正在使用AppEngine.这是一个appengine bug,问题还是其他一些问题?或者它取决于其他东西?

java java.util.calendar

113
推荐指数
5
解决办法
19万
查看次数

设置Java Calendar的值不会给出预期的日期时间

我有一个小时,分钟,日期和毫秒时间戳,我正在尝试创建一个表示时间的Date对象.时间戳在东部夏令时提供.

在剖析问题时,我创建了一些简单的测试代码来查看发生的情况,并观察了以下内容:

    Date today = new Date();
    int hour = 4, min  = 0, sec  = 0, ms   = 64;
    boolean print = true;

    Calendar cal = GregorianCalendar.getInstance();
    if(print)
        System.out.println("After initializing, time is: "+cal.getTime());
    cal.clear();
    if(print)
        System.out.println("After clearing, time is: "+cal.getTime());
    cal.setTime(today);
    if(print)
        System.out.println("After setting date, time is: "+cal.getTime());
    cal.set(Calendar.HOUR_OF_DAY,hour);
    if(print)
        System.out.println("After setting hour, time is: "+cal.getTime());
    cal.set(Calendar.MINUTE,min);
    if(print)
        System.out.println("After setting minute, time is: "+cal.getTime());
    cal.set(Calendar.SECOND,sec);
    if(print)
        System.out.println("After setting second, time is: "+cal.getTime());
    cal.set(Calendar.MILLISECOND,ms);
    if(print)
        System.out.println("After setting milliseconds, time is: …
Run Code Online (Sandbox Code Playgroud)

java java.util.calendar

12
推荐指数
3
解决办法
2万
查看次数

Calendar.UNDECIMBER做什么?

Calendar班里有一个常数叫做:UNDECIMBER.它描述了第13个月.

这个常数有用吗?在维基百科中,它写的是农历.但是这种日历没有实施.

是否存在第14个月的任何解决方案(Duodecimber)?

我在网上找不到这么多,我想更多地了解这个话题.

java time calendar date java.util.calendar

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

如何从 ISO 8601 格式字符串中选择时区到日历实例中

作为输入,我有一个字符串,它是 ISO 8601 中的字符串,用于表示日期。例如:

“2017-04-04T09:00:00-08:00”

String的最后一部分“-08:00”表示时区偏移。我将此字符串转换为Calendar实例,如下所示:

Calendar calendar = GregorianCalendar.getInstance();
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US).parse(iso8601Date);
calendar.setTime(date);
Run Code Online (Sandbox Code Playgroud)

iso8601日期为“2017-04-04T09:00:00-08:00”

但这不会选择时区,如果我从Calendar实例获取时区,它会给出笔记本电脑当前设置的实例,并且不会从 ISO 8601 字符串中获取时间戳。我通过日历实例检查时区:

calendar.getTimeZone().getDisplayName()
Run Code Online (Sandbox Code Playgroud)

有人可以展示如何在Calendar实例中选择时区吗?

java android date datetime-parsing java.util.calendar

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

getDay()方法返回给定日期的星期几不起作用

我正在尝试在HackerRank上完成名为Java Date and Time的任务.

任务

你有一个约会.您只需要编写getDay方法,该方法返回该日期的日期.例如,如果您在2017年8月14日获得日期,则该方法应该返回MONDAY作为该日期的日期.

我尽力完成任务,但我得到了null结果或NullPointerException错误.我想知道我哪里做错了.以下是我的代码:

提前致谢!

我的代码:

import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String month = in.next();
        String day = in.next();
        String year = in.next();

        System.out.println(getDay(day, month, year));
    }

    public static String getDay(String day, String month, String year) {
        Calendar cal = Calendar.getInstance();
        cal.set(Integer.valueOf(year), (Integer.valueOf(month) - 1), Integer.valueOf(day));
        return cal.getDisplayName(cal.get(Calendar.DAY_OF_WEEK), Calendar.LONG, Locale.getDefault());
    }
}
Run Code Online (Sandbox Code Playgroud)

java date dayofweek java.util.calendar

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

java.time包中是否有任何东西与java.util.Calendar中的roll方法具有相同的作用?

我目前正在从项目中放弃java.util Date实现的所有用法,并希望将所有内容从java.time包更改为Classes 。

现在,我发现了对象的roll方法的用法,java.util.Calendar我想知道如何将该对象更改为某种东西java.time package

我检查了java.time的日期类是否具有roll方法,但是找不到任何方法。

    ZonedDateTime.now().roll(); // method does not exist
    LocalDateTime.now().roll(); // method does not exist
    LocalDate.now().roll(); // method does not exist
Run Code Online (Sandbox Code Playgroud)

我正在从java.time包中寻找与该类的roll方法相同的东西java.util.Calendar

有人已经问过一个类似的问题:java.time中的Calendar.roll等效于什么?但是我发现接受的答案并不令人满意。它不会回答java.time中是否有类似于roll的内容。

java java.util.calendar java.time

5
推荐指数
0
解决办法
62
查看次数

关于java.util.Calendar的问题

我试图通过以下代码了解行为.我当地的时区是UTC -7(亚利桑那州).

Calendar cal = Calendar.getInstance();
cal.set(Calendar.MINUTE,40);
cal.set(Calendar.AM_PM,Calendar.PM);
System.out.println("1 UTC -4 Hour:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("1 UTC -4 Day:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("1 UTC -7 Time Stamp:" + cal.getTime().toString());
cal.set(Calendar.HOUR,12);
System.out.println("2 UTC -4 Hour:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("2 UTC -4 Day:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("2 UTC -7 Time Stamp:" + cal.getTime().toString());
cal.setTimeZone(TimeZone.getTimeZone("America/New_York")); //set time zone to UTC -4
System.out.println("3 UTC -4 Hour:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("3 UTC -4 Day:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("3 UTC -7 Time Stamp:" + cal.getTime().toString());
cal.set(Calendar.HOUR,12);
System.out.println("4 UTC -4 Hour:" + cal.get(Calendar.HOUR_OF_DAY)); …
Run Code Online (Sandbox Code Playgroud)

java calendar date java.util.date java.util.calendar

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

如何使用日历类获得一个月内的所有日期?

在这里,我希望显示日期

2013-01-01,
2013-01-02,
2013-01-03,
.
.
...etc
Run Code Online (Sandbox Code Playgroud)

我可以在一个月内得到总天数

private int getDaysInMonth(int month, int year) {
  Calendar cal = Calendar.getInstance();  // or pick another time zone if necessary
  cal.set(Calendar.MONTH, month);
  cal.set(Calendar.DAY_OF_MONTH, 1);      // 1st day of month
  cal.set(Calendar.YEAR, year);
  cal.set(Calendar.HOUR, 0);
  cal.set(Calendar.MINUTE, 0);
  Date startDate = cal.getTime();

  int nextMonth = (month == Calendar.DECEMBER) ? Calendar.JANUARY : month + 1;
  cal.set(Calendar.MONTH, nextMonth);
  if (month == Calendar.DECEMBER) {
     cal.set(Calendar.YEAR, year + 1);
  }
  Date endDate = cal.getTime();

  // get the number of days …
Run Code Online (Sandbox Code Playgroud)

java java.util.calendar

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

Java Calendar错误?

经过大量调试后,我将问题范围缩小到以下代码段:

public static void calendarBug() {
    for (int i=0 ; i<6 ; i++) {
        Calendar c = Calendar.getInstance();
        c.clear();
        c.set(2015, 2, 27, i, 0);
        System.out.println(c.getTime());
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此命令会提供以下输出:

Fri Mar 27 00:00:00 IST 2015
Fri Mar 27 01:00:00 IST 2015
Fri Mar 27 03:00:00 IDT 2015
Fri Mar 27 03:00:00 IDT 2015
Fri Mar 27 04:00:00 IDT 2015
Fri Mar 27 05:00:00 IDT 2015
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么c.set(2015,2,27,2,0)返回3AM而不是2AM

java java.util.calendar

3
推荐指数
2
解决办法
604
查看次数

Calender.set(Calender.Month, ?) 如何工作?

我正在编写一种方法,可以将日期提前给定的周数。这是我的代码:

public class Date {
int year;
int month;
int day;

public Date (int year, int month, int day){
    this.year = year;
    this.month = month;
    this.day = day;

}
    public void addWeeks (int weeks){
    int week = weeks * 7;
    DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_MONTH, this.day);
    calendar.set(Calendar.MONTH, this.month);
    calendar.set(Calendar.YEAR, this.year);
    calendar.add(Calendar.DAY_OF_MONTH, week);
    System.out.println();
    System.out.println("Date after adding " + weeks + " weeks is: " + dateFormat.format(calendar.getTime()));
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我将今天的日期传递给年、月和日。(03/08/2019) 然后调用 addWeeks(1) 例如,那么日期应该提前为 (03/15/2019) 但它给了我 (04/15/2019)。由于某种原因,月份总是比我输入的月份多 1。如果我输入月份 …

java date java.util.calendar

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