java - 将日期从 "2009-12 Dec"格式转换为 "31-DEC-2009"

标签 java date date-format simpledateformat

'2009-12 Dec' should be converted to '31-DEC-2009'
'2010-09 Sep' should be converted to '30-SEP-2010'
'2010-02 Feb' should be converted to '28-FEB-2010'
'2008-02 Feb' should be converted to '29-FEB-2008'

2009-12 Dec2008-02 Feb 将在下拉列表中显示给用户。用户无法选择DAY

用户选择的值应该传递给数据库。但数据库期望日期格式为 DD-MMM-YYYY .查询有' <= USER_DATE ' 健康)状况。因此,应自动选择该月的最后一天并将其传递给数据库。

请帮助我编写完成上述工作的函数。

static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM MMM");

    public static String convertMapedToSqlFormat(final String maped) {
        String convertedMaped = null;
        //....
        return convertedMaped;
    }

    @Test
    public void testConvertMapedToSqlFormat() {
        String[] mapedValues = { "2009-12 Dec", "2009-11 Nov", "2009-10 Oct",
                "2009-09 Sep", "2009-08 Aug", "2009-07 Jul", "2009-06 Jun",
                "2009-05 May", "2009-04 Apr", "2009-03 Mar", "2009-02 Feb",
                "2009-01 Jan", "2008-12 Dec", "2008-11 Nov", "2008-10 Oct" };
        for (String maped : mapedValues) {
            System.out.println(convertMapedToSqlFormat(maped));
        }
    }

最佳答案

将其转换为 Calendar并使用 Calendar#getActualMaximum()获取月份的最后一天并用它设置日期。

启动示例:

String oldString = "2009-12 Dec";
Calendar calendar = Calendar.getInstance();
calendar.setTime(new SimpleDateFormat("yyyy-MM").parse(oldString)); // Yes, month name is ignored but we don't need this.
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
String newString = new SimpleDateFormat("dd-MMM-yyyy").format(calendar.getTime()).toUpperCase();
System.out.println(newString); // 31-DEC-2009

关于java - 将日期从 "2009-12 Dec"格式转换为 "31-DEC-2009",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839584/

相关文章:

java - 效率 : switch statements over if statements

java - 如果高分大于 20,则无法选中复选框

java - 无法解析 Java 中的 newDate()

允许 -/或 .作为日期内的分隔符

java - 如何获取客户端系统使用的日期格式?

java - 使用 DateFormat 类获取日期和日期字符串 - Android

java - mysql的搜索条件

java - Java 对 for-each 元素做了什么以使它们成为对象类型?

excel - 如何将 FILETIME 转换为 Excel 日期

ios - 如何从 UIImage 或 Cocoa 中的图片获取日期信息?