如何在Java中转换特定数字中的当前日期

如何在Java中转换特定数字中的当前日期,java,sql,oracle,Java,Sql,Oracle,在我的SQL Select子句中有以下Oracle SQL语句,它将01.04.2015之类的日期转换为78,01.07.2015转换为79等等(beginDate的值可以是01.04.2015或01.07.2015): 现在,对我来说,使用相同的数学表达式将当前日期始终转换为Java中相同的值是很重要的。我不知道如何用Java编程这些步骤?以下是第一个想法: Calendar calendar = Calendar.getInstance(); int year = calendar.get(

在我的SQL Select子句中有以下Oracle SQL语句,它将
01.04.2015
之类的日期转换为
78
01.07.2015
转换为
79
等等(beginDate的值可以是
01.04.2015
01.07.2015
):

现在,对我来说,使用相同的数学表达式将当前日期始终转换为Java中相同的值是很重要的。我不知道如何用Java编程这些步骤?以下是第一个想法:

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);   // the value is 2015
int month = calendar.get(Calendar.MONTH); // the value is 09
int quarter = (month / 3) + 1;            // the value is 3
对于
01.04.2015
而言,必须将其转换为
78
,对于
01.07.2015
而言,必须将其转换为
79
。我怎样才能解决这个问题

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
System.out.println(month / 3 + 1 + 4 * (year % 100) + 16);
Oracle
'q'
返回一年中的季度。这在Java中是通过获取月份值并计算
month/3+1
得到的

然后,Oracle
'yy'
返回年份的最后两位数字。这在Java中通过获取年份值并计算
year%100
来获得

您可以使用以下代码对其进行测试:

public static void main(String args[]) throws Exception {
    System.out.println(getNumber("01.04.2015")); // prints 78
    System.out.println(getNumber("01.07.2015")); // prints 79
}

private static int getNumber(String dateStr) throws ParseException {
    Date date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    return month / 3 + 1 + 4 * (year % 100) + 16;
}

我无法理解它是如何为“01.04.2015”计算
78的。您能解释一下吗?
SELECT to_char(beginDate,'q')+4*to_char(beginDate,'yy')+16 quartal
中定义的
quartal
在哪里?quartal是一个别名,用于设置特定的列名。
public static void main(String args[]) throws Exception {
    System.out.println(getNumber("01.04.2015")); // prints 78
    System.out.println(getNumber("01.07.2015")); // prints 79
}

private static int getNumber(String dateStr) throws ParseException {
    Date date = new SimpleDateFormat("dd.MM.yyyy").parse(dateStr);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    return month / 3 + 1 + 4 * (year % 100) + 16;
}