如何在java中获取所选月份最后日期最后时间戳?

如何在java中获取所选月份最后日期最后时间戳?,java,Java,从下面的java代码中,我得到了一个月的First&last dateTimestamp,但这里我需要last dateTimestamp为“Mon Aug 31 23:59:59 IST 2015”,而不是“Mon Aug 31 00:00:00 IST 2015” 输出:-> firstDate--> 1/8/2015 lastDate--> 31/8/2015 BeginDate Timestamp Sat Aug 01 00:00:00 IST 2015 endD

从下面的java代码中,我得到了一个月的First&last dateTimestamp,但这里我需要last dateTimestamp为“Mon Aug 31 23:59:59 IST 2015”,而不是“Mon Aug 31 00:00:00 IST 2015”

输出:->

firstDate-->    1/8/2015
lastDate-->    31/8/2015
BeginDate Timestamp Sat Aug 01 00:00:00 IST 2015
endDate Timestamp   Mon Aug 31 00:00:00 IST 2015

如果我们有任何解决方案,请帮助我。

如果我理解您的问题,您似乎希望将一年和一个月的时间转换为一种方法,并返回所经过的月份的最后一天

我建议(按这个顺序)考虑:

  • 您使用哪个jdk
  • 日历的配置
  • 时区配置(可能)
  • 使用jodatime
  • 从1.8开始,jdk中已经添加了许多类似JodaTime的特性,例如,请参见(如果您不使用1.8,则可以使用joda库,前提是您的组织允许)

    getInstance()提供默认时区和默认区域设置,这意味着运行JVM的定义。您可能需要或不需要考虑这一点,而不仅仅是实现GETSimScript()。参见API javadoc

    假设使用Gregeorian日历(嘿,您可能是巴哈教徒,一年中有19个月……),下面是一个使用JDK 1.7、JodaTime jar 2.2、validation-1.0.0.GA jar的部分实现:

    @Test
    public void testDate() {
    
        final String dateStringOfFirstDay = "1.7.2015";
        final Date lastDayOfMonth = getLastDayOfMonth(dateStringOfFirstDay);
        Assert.assertNotNull(lastDayOfMonth);
        //more assertions ...
    }
    
    private Date getLastDayOfMonth(@NotNull String dateStringOfFirstDay) {
    
        //further validation here necessary according to required date format 
        DateTime dt = DateTime.parse(dateStringOfFirstDay);
        return dt.dayOfMonth().withMaximumValue().toDate();
    }
    
    DateFormat/DateTimeFormat的定义和进一步的结果断言由您决定


    祝你好运

    伙计们,我的问题有了答案!!! 我想它也会帮助你

    Calendar calendar = Calendar.getInstance();
            int year=2015;
            int month=7;
            int date=31;
            int hourOfDay=23;
            int minute=59;
            int second=59;
            int milliSecond=999;
            calendar.set(year, month, date, hourOfDay, minute, second);
            calendar.set(calendar.MILLISECOND, milliSecond);
            System.out.println("Time from Calendar: "+calendar.getTime());
            long timeInMilliSeconds=calendar.getTimeInMillis();
            System.out.println("timeInMilliSeconds from calendar: "+timeInMilliSeconds);
            Timestamp timestamp=new Timestamp(timeInMilliSeconds);
            System.out.println(timestamp);
    
    上述程序给出所选月份的最后日期和最后时间戳。 getTimeInMillis()从1970年1月1日到当前时间的时间(以毫秒为单位)。 用这些毫秒我得到了时间戳。 谢谢你们的帮助,伙计们

    输出:->

    Time from Calendar: Mon Aug 31 23:59:59 IST 2015
    timeInMilliSeconds from calendar: 1441045799999
    2015-08-31 23:59:59.999
    

    你可以加上一天,减去一秒钟。或者您可以将小时、分钟、秒和毫秒设置为您喜欢的任何值。您不能吗?使用
    cal.set(…)
    就像您在示例中所做的那样。谢谢各位,我找到了解决方案。
    Time from Calendar: Mon Aug 31 23:59:59 IST 2015
    timeInMilliSeconds from calendar: 1441045799999
    2015-08-31 23:59:59.999