java中的日期函数

java中的日期函数,java,date,db2,Java,Date,Db2,我有两次约会 1) 起始日期:如2010年1月1日(2010年1月1日) 2) 当前日期:如2011年6月5日(2011年6月5日) 我希望第三次约会是: 3) 申请日期:如2011年1月1日(2011年1月1日) 年份应从“当前日期”开始,日期和月份应从“自日期”开始。 我提到的日期是硬编码的。 在我的代码中,我运行一个查询来获取这两个日期。查看Calendar类 类似//未经测试 Calendar cal=Calendar.getInstance(); cal.setTime(from_d

我有两次约会

1) 起始日期:如2010年1月1日(2010年1月1日)

2) 当前日期:如2011年6月5日(2011年6月5日)

我希望第三次约会是:

3) 申请日期:如2011年1月1日(2011年1月1日)

年份应从“当前日期”开始,日期和月份应从“自日期”开始。 我提到的日期是硬编码的。
在我的代码中,我运行一个查询来获取这两个日期。

查看Calendar类

类似//未经测试

Calendar cal=Calendar.getInstance();
cal.setTime(from_date);

Calendar cal2=Calendar.getInstance();
cal2.setTime(present_date);

Calendar cal3=Calendar.getInstance();
cal3.set(cal2.get(CALENDAR.YEAR),cal1.get(CALENDAR.MONTH),cal1.get(CALENDAR.DATE));

Date reg_date = cal3.getTime();

查看日历类

类似//未经测试

Calendar cal=Calendar.getInstance();
cal.setTime(from_date);

Calendar cal2=Calendar.getInstance();
cal2.setTime(present_date);

Calendar cal3=Calendar.getInstance();
cal3.set(cal2.get(CALENDAR.YEAR),cal1.get(CALENDAR.MONTH),cal1.get(CALENDAR.DATE));

Date reg_date = cal3.getTime();

您可以设置日期的各个字段:

Date req_date = from_date;
req_date.setYear (present_date.getYear());
或者,如果您使用的是
日历
日期
不推荐):

如果它们是字符串,则只需使用子字符串即可获得所需内容:

String req_date = from_date.substring(0,6) + present_date.substring(6);

(假设是这样的
XX/XX/YYYY

您可以设置日期的各个字段:

Date req_date = from_date;
req_date.setYear (present_date.getYear());
或者,如果您使用的是
日历
日期
不推荐):

如果它们是字符串,则只需使用子字符串即可获得所需内容:

String req_date = from_date.substring(0,6) + present_date.substring(6);

(假设
XX/XX/YYYY
似乎是这样)。

不确定我是否正确理解您的意思,但这个示例应该让您开始:

int year = 2003;
int month = 12;
int day = 12;

String date = year + "/" + month + "/" + day;
java.util.Date utilDate = null;

try {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  utilDate = formatter.parse(date);
  System.out.println("utilDate:" + utilDate);
} catch (ParseException e) {
  System.out.println(e.toString());
  e.printStackTrace();
}

通过这种方式,您可以将日期字符串转换为java.util.date对象,然后您可以使用日期/日历方法构造第三个日期

不确定我是否正确理解您的意思,但这个示例应该让您开始:

int year = 2003;
int month = 12;
int day = 12;

String date = year + "/" + month + "/" + day;
java.util.Date utilDate = null;

try {
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  utilDate = formatter.parse(date);
  System.out.println("utilDate:" + utilDate);
} catch (ParseException e) {
  System.out.println(e.toString());
  e.printStackTrace();
}
from_date: for EX. 01/01/2010 (1 st January 2010)

present_date :for EX. 05/06/2011(5th june 2011)

String s1[]=from_date.split("/");
String s2[]=present_date.split("/");
String newDate=s1[0]+"/"+s1[1]+"/"+s2[2];

通过这种方式,您可以将日期字符串转换为java.util.date对象,然后可以使用date/Calendar方法构造第三个日期

您希望从\u date开始的日期和月份以及从当前日期开始的年份?@Rasel yes..我希望从\u date开始的日期和月份以及从当前日期开始的年份是这些字符串还是日期类(date/Calendar)?您想要从日期开始的日和月以及从当前日期开始的年?@Rasel是的..我想要从日期开始的日和月以及从当前日期开始的年是这些字符串还是日期类(日期/日历)?不幸的是,这些方法已经弃用,所以您最好使用
日历
(或Joda Time:))弃用并不意味着无法使用,这只是意味着它将在某个时候被移除。如果您的代码仍在使用它们(并且它们工作正常),则无需转换为日历,除非您需要,因为这可能需要大量工作。如果您想在删除最新和最好的Java之后再迁移到它们,那么,是的,您必须在最晚的时候这样做,否则YAGNI。在任何情况下,我也提供了
日历
的等价物。不幸的是,这些方法已被弃用,因此您最好使用
日历
(或Joda Time:))弃用并不意味着无法使用,只是意味着它将在某个时候被删除。如果您的代码仍在使用它们(并且它们工作正常),则无需转换为日历,除非您需要,因为这可能需要大量工作。如果您想在删除最新和最好的Java之后再迁移到它们,那么,是的,您必须在最晚的时候这样做,否则YAGNI。无论如何,我也提供了日历的等价物。@MarrLiss:-当然,他必须处理这个。@MarrLiss:-当然,他必须处理这个。
from_date: for EX. 01/01/2010 (1 st January 2010)

present_date :for EX. 05/06/2011(5th june 2011)

String s1[]=from_date.split("/");
String s2[]=present_date.split("/");
String newDate=s1[0]+"/"+s1[1]+"/"+s2[2];