我有一个计算到期日期的代码,但我不知道如何将其转换为日期格式
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);
这很容易。
【讨论】:
以上是关于我有一个计算到期日期的代码,但我不知道如何将其转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章
任何人都可以帮我处理这段代码吗?我需要将其转换为 rails 4 但我不知道如何..(从 rails 2 到 rails 4 的 routes.rb 文件)