从mm-dd-yyyy重新排列DatePicker到yyyy-mm-dd

时间:2013-12-22 06:27:38

标签: android datepicker

我有一个MM-DD-YYYY格式的自定义日期选择器。我把它定制为因为我需要月份字段作为数字。现在,我希望它将字段排列成YYYY-MM-DD格式,但我不知道如何。这是我的custom datepicker的构造函数:

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.DatePicker;
import android.widget.NumberPicker;

import java.lang.reflect.Field;

public class MyDatePicker extends DatePicker {
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public MyDatePicker(Context context, AttributeSet attrs) {
        super(context, attrs);
        Field[] fields = DatePicker.class.getDeclaredFields();
        try {
            String[] s = new String[] {"01","02","03","04","05","06","07","08","09","10","11","12"};
            for (Field field : fields) {
                field.setAccessible(true);
                if (TextUtils.equals(field.getName(), "mMonthSpinner")) {
                    NumberPicker monthPicker = (NumberPicker) field.get(this);
                    monthPicker.setDisplayedValues(s);
                }
                if (TextUtils.equals(field.getName(), "mShortMonths")) {
                    field.set(this, s);
                }

            }
        }

        catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题(几个月的数字,“字段”的顺序以及在某些情况下隐藏日期选择器)。最后写了我自己的日期选择器。 问题是标准的android datepicker根据设备中设置的语言环境排列NumberSpinners。有一种称为reorderPickers的方法。看看那里。