【问题标题】:calendar api to display date alone日历 api 单独显示日期
【发布时间】:2011-05-18 23:32:35
【问题描述】:
    import java.util.Calendar;

    public class Employee {
        private Calendar doj; 
        public Employee(Calendar date) {
            // TODO Auto-generated constructor stub
            this.doj=date;
        }
        public Calendar getDoj() 
        { 
        return doj; 
        } 

    }



import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;


public class TestEmployeeSort {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Employee> coll = getEmployees();
        printList(coll);
    }
        public static List<Employee> getEmployees() 
        { 
            List<Employee> col = new ArrayList<Employee>();

            col.add(new Employee(Calendar.getInstance()));
            return col;
        } 
        private static void printList(List<Employee> list) { 
            System.out.println("Date_Of_Joining"); 

            for (int i = 0; i < list.size(); i++) { 
                Employee e = list.get(i); 
                System.out.println(e.getDoj()); 
            } 
        } 
    }

以上代码产生以下输出 入职日期 java.util.GregorianCalendar[time=1291275522078,areFieldsSet=true,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=2010,MONTH=11,WEEK_OF_YEAR=49,WEEK_OF_MONTH=1,DAY_OF_MONTH=2,DAY_OF_YEAR=336,DAY_OF_WEEK=5 ,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=8,SECOND=42,MILLISECOND=78,ZONE_OFFSET=19800000,DST_OFFSET=0]

我只需要单独打印日期。我应该如何更改代码?

【问题讨论】:

    标签: java


    【解决方案1】:

    我个人会使用Joda Time(以及它的LocalDate 类,如果你真的只想保持日期)而不是java.util.Calendar,但如果你确实想使用Calendar,你需要一个SimpleDateFormat

    java.util.Calendar 示例:

    import java.util.*;
    import java.text.*;
    
    public class Test
    {
        public static void main(String[] args)
        {
            Calendar calendar = Calendar.getInstance();
            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
            System.out.println(format.format(calendar.getTime()));
        }
    }
    

    乔达时间示例:

    import org.joda.time.*;
    import org.joda.time.format.*;
    
    public class Test
    {
        public static void main(String[] args)
        {
            LocalDate today = new LocalDate();
            // Alternatively, use DateTimeFormat.mediumDate etc
            DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
            System.out.println(formatter.print(today));
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用java.text.DateFormat 而不是纯Calendar

      【讨论】:

        【解决方案3】:

        使用返回日期的 Caledar.getTime()。然后使用 SimpleDateFormat 随意格式化。

        【讨论】:

          【解决方案4】:

          查看http://veyder-time.enblom.org 它是 java.util.Calendar 的简单而强大的替代品。

          【讨论】:

          • 很好的智力成果,但我认为 - 当市场上存在 Joda 时间和新的 Java 9 API 时,有这种感觉吗?第三个,不兼容的日期api?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-25
          • 2017-06-24
          • 2023-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多