我有一个计算到期日期的代码,但我不知道如何将其转换为日期格式

Posted

技术标签:

【中文标题】我有一个计算到期日期的代码,但我不知道如何将其转换为日期格式【英文标题】:I have a code that calculate the expiry date but I dont know how to convert it into date format 【发布时间】:2015-09-29 11:40:25 【问题描述】:
Item i1=new Item();
        int month3=0;
          i1.setManufacturingDate(rs.getDate("mfg_date"));
          Date date1 = rs.getDate("mfg_date");
          Calendar cal = Calendar.getInstance();
          cal.setTime(date1);
          int month = cal.get(Calendar.MONTH);
          int date=cal.get(Calendar.DATE);
          int year=cal.get(Calendar.YEAR);
          int month2=month+1;
         // System.out.print("\t"+month2);


        i1.setUseBeforeMonths(rs.getInt("UseBeforeInMonths"));
        int month1=rs.getInt("UseBeforeInMonths");
        //System.out.print("\t"+month1);

        System.out.println("Expiry Date is");
        int expiry=month2+month1;
        int sum=0;
        if(expiry>12)
        
            sum=expiry-12;
            System.out.println(sum);
            month3=sum;
        
        else
        
            System.out.println(expiry);
            month3=expiry;
        

此代码计算到期日期。但我不知道如何将其转换为日期格式。

我试过了

Calendar c3 = Calendar.getInstance();
                c3.set(year, month3, date); 
                System.out.println(c3);

但它没有给出正确的输出。它给出的输出是

Expiry Date is
1
java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=1,WEEK_OF_YEAR=28,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=191,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=34,SECOND=39,MILLISECOND=138,ZONE_OFFSET=19800000,DST_OFFSET=0]
Expiry Date is
4
java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=4,WEEK_OF_YEAR=28,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,DAY_OF_YEAR=191,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=34,SECOND=39,MILLISECOND=139,ZONE_OFFSET=19800000,DST_OFFSET=0]
Expiry Date is
11

    java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=11,WEEK_OF_YEAR=28,WEEK_OF_MONTH=2,DAY_OF_MONTH=28,DAY_OF_YEAR=191,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=34,SECOND=39,MILLISECOND=139,ZONE_OFFSET=19800000,DST_OFFSET=0]

请帮我将日期转换为日期格式,即“YYYY-MM-DD”。这里 date 变量有日期,month3 变量有月份,year 变量有年份

谢谢。

【问题讨论】:

Using GregorianCalendar with SimpleDateFormat 的可能重复项 @sss 发帖前请搜索 ***。这个话题之前已经讨论过很多很多次了。 【参考方案1】:

因误解而编辑:

GregorianCalendar dateConverted = new GregorianCalendar(year, month, days);
format(dateConverted);
return dateConverted;

祝你好运,告诉我这是否有效。

【讨论】:

它不起作用:(我想以日期格式创建到期日期 抱歉听到可能:GregorianCalendar dateConverted = new GregorianCalendar(year, month3, day);格式(日期转换);返回日期转换; format(dateConverted) 返回字符串类型的值。我想要日期格式。即日期日期【参考方案2】:

尝试使用 Java 8 的 LocalDate 和 DateTimeFormatter 类的实现:

DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; // The Built-in YYYY-MM-DD format
LocalDate date = LocalDate.of(c3.get(Calendar.YEAR), c3.get(Calendar.MONTH), c3.get(Calendar.DATE));
System.out.println(formatter.format(date));

为 pre-Java 8 编辑:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(formatter.format(c3.getTime()));

【讨论】:

那么旧版本的 java 呢?它不适用于旧版本 我添加了一个应该在旧版本中工作的实现【参考方案3】:

最简单最简单的方法是

Date object=new Date();

SimpleDateFormat myformat = new SimpleDateFormat("ddmmyyyy"); String mydate = myformat.format(object);

这里的日期将返回我们当前的日期。使用我们获取的格式 dd:日期 毫米:月 yy: 年

这样做的好处是你也可以通过指定(“HHMMSS”)小时分钟和秒来获得时间。

【讨论】:

【参考方案4】:
Date aDate = new Date(year1,month3,date);
                System.out.println(aDate);

这很容易。

【讨论】:

以上是关于我有一个计算到期日期的代码,但我不知道如何将其转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

jdbcTemplate 查询行映射日期列一般

任何人都可以帮我处理这段代码吗?我需要将其转换为 rails 4 但我不知道如何..(从 rails 2 到 rails 4 的 routes.rb 文件)

如何在 C++ 中计算下周六之前的秒数?

如何将日期(“Ymd”)的输出转换为 PHP 中的数字? [复制]

如何在不知道格式的情况下将字符串转换为日期?

如何轻松将旧式分区表转换为新式分区表