如何在java中将日历设置为特定的日期和时间

如何在java中将日历设置为特定的日期和时间,java,time,calendar,Java,Time,Calendar,我正在使用java的Calendar类。这里Calendar已经设置为星期几和时间。现在根据我的需要,我想将它设置为月日和时间,就像Calendar应该设置为月10日,时间应该是上午10点。但是我无法获得它 这是我的密码 Calendar date = Calendar.getInstance(); date.set( Calendar.DAY_OF_WEEK, Calendar.TUESDAY); date.set(Calenda

我正在使用java的Calendar类。这里Calendar已经设置为星期几和时间。现在根据我的需要,我想将它设置为月日和时间,就像Calendar应该设置为月10日,时间应该是上午10点。但是我无法获得它

这是我的密码

Calendar date = Calendar.getInstance();
    date.set(
            Calendar.DAY_OF_WEEK,
            Calendar.TUESDAY);
    date.set(Calendar.HOUR, 10);
    date.set(Calendar.MINUTE, 58);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);
请帮帮我。。
提前感谢。

如果您想设置月份的日期,那么您可以交替使用这两种方法中的任何一种

date.set(Calendar.DAY_OF_MONTH, 10); // Synonym of DATE
date.set(Calendar.DATE, 10); // Synonym of DAY_OF_MONTH

你们的代码是有效的,唯一的区别是你们的设定日期。但是一天中的哪个星期

下面的代码演示如何设置日历的日期和时间

Calendar date = Calendar.getInstance();
    long today = date.getTimeInMillis();
    date.set(
            Calendar.DATE,11);
    date.set(Calendar.HOUR, 10);
    date.set(Calendar.MINUTE, 58);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);
    date.set(Calendar.MONTH, 10);
    date.set(Calendar.YEAR, 2013);
    date.setTimeZone(TimeZone.getDefault());

    long lastday = date.getTimeInMillis();
    System.out.println(date.getTimeInMillis());

    long diff = today - lastday;
    diff = ((diff/1000)/360);
    System.out.println("Hours diff :"+diff);
tl;博士 细节 所接受的结果是正确的

java.time 这里有一种方法可以做同样的事情,但是使用现代的java.time类来取代麻烦的旧遗留日期时间类

该类表示特定时区中时间轴上的一个时刻,分辨率为。使用所有特定的年、月、小时等进行实例化。参数:

请参阅该值的标准格式的字符串表示形式,通过在方括号中添加时区名称进行扩展

String output = zdt.toString();
2016-09-10T10:00:00+02:00[欧洲/巴黎]

如果希望以其他格式生成字符串,请在堆栈溢出中搜索
DateTimeFormatter

关于java.time 该框架内置于Java8及更高版本中。这些类取代了旧的麻烦的日期时间类,如
java.util.date
.Calendar
,&
java.text.SimpleDateFormat

该项目现已启动,建议迁移到java.time

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释

大部分java.time功能都在中向后移植到java 6和7,并进一步适应于中(请参阅)


该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如
Interval
YearWeek
yearquarty
,等等。

@SotiriosDelimanolis我想为特定的日期设置日期,在这里它是为周和周日名称设置的。.使用JodaTime关于Joda时间,团队现在建议迁移到java.Time类。项目处于维护模式,不推荐
date.set(日历小时,10)我建议
日期设置(日历.HOUR\u OF_DAY,10)因为它可能更能给用户带来良好的体验。如何在日历实例中设置时间段…比如从7月1日到7月5日?@ShikharJaiswal:给你,
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = ZonedDateTime.of( 2016 , 9 , 10 , 10 , 0 , 0 , 0 , z );
String output = zdt.toString();