如何从 Java 中的日历对象构建天、月、年的列表?

How can I build a list of days, months, years from a calendar object in Java?(如何从 Java 中的日历对象构建天、月、年的列表?)
本文介绍了如何从 Java 中的日历对象构建天、月、年的列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想为一个表单构建一个日期小部件,它有一个包含月、日、年的选择列表.由于列表根据月份和年份而有所不同,因此我无法将其硬编码为 31 天.(例如 2 月有 28 天而不是 30 或 31 天,有些年份甚至是 29 天)如何使用日历或 joda 对象为我构建这些列表.

I want to build a date widget for a form, which has a select list of months, days, years. since the list is different based on the month and year, i cant hard code it to 31 days. (e.g february has 28 days not 30 or 31 and some years even 29 days) How can I use the calendar or joda object to build me these lists.

推荐答案

强烈建议您避免使用 Java 中内置的日期和时间 API.

I strongly recommend that you avoid the built-in date and time APIs in Java.

改为使用 Joda Time.这个库类似于(希望如此!)进入 Java 7 的库,并且比内置 API 更易于使用.

Instead, use Joda Time. This library is similar to the one which will (hopefully!) make it into Java 7, and is much more pleasant to use than the built-in API.

现在,您想知道特定月份的天数是基本问题吗?

Now, is the basic problem that you want to know the number of days in a particular month?

这是代码(带有示例):

Here's the code (with a sample):

import org.joda.time.*;
import org.joda.time.chrono.*;

public class Test   
{
    public static void main(String[] args)
    {        
        System.out.println(getDaysInMonth(2009, 2));
    }

    public static int getDaysInMonth(int year, int month)
    {
        // If you want to use a different calendar system (e.g. Coptic)
        // this is the code to change.
        Chronology chrono = ISOChronology.getInstance();
        DateTimeField dayField = chrono.dayOfMonth();        
        LocalDate monthDate = new LocalDate(year, month, 1);
        return dayField.getMaximumValue(monthDate);
    }
}

这篇关于如何从 Java 中的日历对象构建天、月、年的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Month is not printed from a date - Java DateFormat(月份不是从日期打印的 - Java DateFormat)
java get week of year for given a date(java获取给定日期的一年中的一周)
Get the number of days, weeks, and months, since Epoch in Java(获取自 Java 中的 Epoch 以来的天数、周数和月数)
Is there a good way to get the date of the coming Wednesday?(有什么好方法可以得到即将到来的星期三的日期吗?)
Calendar view for Android GingerBread and before (APIlt;11)(Android GingerBread 及之前的日历视图 (API11))
How to save and retrieve Date in SharedPreferences(如何在 SharedPreferences 中保存和检索日期)