如何 让android app 中文显示年月日

如何 让android app 中文显示年月日,第1张

/

获取当前时间 format:yyyy-MM-dd HH:mm:ss

/

public static String getCurrentTime(String format) {

SimpleDateFormat df = new SimpleDateFormat(format);

return dfformat(new Date());

}

参数format写成 yyyy年MM月dd日即可 ,HHmmss为时分秒

package comwwjdatetimepicker;

import javatextSimpleDateFormat;

import javautilCalendar;

import androidappActivity;

import androidappAlertDialog;

import androidcontentDialogInterface;

import androidwidgetDatePicker;

import androidwidgetDatePickerOnDateChangedListener;

import androidwidgetEditText;

import androidwidgetLinearLayout;

import androidwidgetTimePicker;

import androidwidgetTimePickerOnTimeChangedListener;

/

日期时间选择控件 使用方法: private EditText inputDate;//需要设置的日期时间文本编辑框 private String

initDateTime="2012年9月3日 14:44",//初始日期时间值 在点击事件中使用:

inputDatesetOnClickListener(new OnClickListener() {

@Override public void onClick(View v) { DateTimePickDialogUtil

dateTimePicKDialog=new

DateTimePickDialogUtil(SinvestigateActivitythis,initDateTime);

dateTimePicKDialogdateTimePicKDialog(inputDate);

} });

@author

/

public class DateTimePickDialogUtil implements OnDateChangedListener,

OnTimeChangedListener {

private DatePicker datePicker;

private TimePicker timePicker;

private AlertDialog ad;

private String dateTime;

private String initDateTime;

private Activity activity;

/

日期时间d出选择框构造函数

@param activity

:调用的父activity

@param initDateTime

初始日期时间值,作为d出窗口的标题和日期时间初始值

/

public DateTimePickDialogUtil(Activity activity, String initDateTime) {

thisactivity = activity;

thisinitDateTime = initDateTime;

}

public void init(DatePicker datePicker, TimePicker timePicker) {

Calendar calendar = CalendargetInstance();

if (!(null == initDateTime || ""equals(initDateTime))) {

calendar = thisgetCalendarByInintData(initDateTime);

} else {

initDateTime = calendarget(CalendarYEAR) + "年"

+ calendarget(CalendarMONTH) + "月"

+ calendarget(CalendarDAY_OF_MONTH) + "日 "

+ calendarget(CalendarHOUR_OF_DAY) + ":"

+ calendarget(CalendarMINUTE);

}

datePickerinit(calendarget(CalendarYEAR),

calendarget(CalendarMONTH),

calendarget(CalendarDAY_OF_MONTH), this);

timePickersetCurrentHour(calendarget(CalendarHOUR_OF_DAY));

timePickersetCurrentMinute(calendarget(CalendarMINUTE));

}

/

d出日期时间选择框方法

@param inputDate

:为需要设置的日期时间文本编辑框

@return

/

public AlertDialog dateTimePicKDialog(final EditText inputDate) {

LinearLayout dateTimeLayout = (LinearLayout) activity

getLayoutInflater()inflate(Rlayoutcommon_datetime, null);

datePicker = (DatePicker) dateTimeLayoutfindViewById(Riddatepicker);

timePicker = (TimePicker) dateTimeLayoutfindViewById(Ridtimepicker);

init(datePicker, timePicker);

timePickersetIs24HourView(true);

timePickersetOnTimeChangedListener(this);

ad = new AlertDialogBuilder(activity)

setTitle(initDateTime)

setView(dateTimeLayout)

setPositiveButton("设置", new DialogInterfaceOnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

inputDatesetText(dateTime);

}

})

setNegativeButton("取消", new DialogInterfaceOnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

inputDatesetText("");

}

})show();

onDateChanged(null, 0, 0, 0);

return ad;

}

public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {

onDateChanged(null, 0, 0, 0);

}

public void onDateChanged(DatePicker view, int year, int monthOfYear,

int dayOfMonth) {

// 获得日历实例

Calendar calendar = CalendargetInstance();

calendarset(datePickergetYear(), datePickergetMonth(),

datePickergetDayOfMonth(), timePickergetCurrentHour(),

timePickergetCurrentMinute());

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");

dateTime = sdfformat(calendargetTime());

adsetTitle(dateTime);

}

/

实现将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒,并赋值给calendar

@param initDateTime

初始日期时间值 字符串型

@return Calendar

/

private Calendar getCalendarByInintData(String initDateTime) {

Calendar calendar = CalendargetInstance();

// 将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒

String date = spliteString(initDateTime, "日", "index", "front"); // 日期

String time = spliteString(initDateTime, "日", "index", "back"); // 时间

String yearStr = spliteString(date, "年", "index", "front"); // 年份

String monthAndDay = spliteString(date, "年", "index", "back"); // 月日

String monthStr = spliteString(monthAndDay, "月", "index", "front"); // 月

String dayStr = spliteString(monthAndDay, "月", "index", "back"); // 日

String hourStr = spliteString(time, ":", "index", "front"); // 时

String minuteStr = spliteString(time, ":", "index", "back"); // 分

int currentYear = IntegervalueOf(yearStrtrim())intValue();

int currentMonth = IntegervalueOf(monthStrtrim())intValue() - 1;

int currentDay = IntegervalueOf(dayStrtrim())intValue();

int currentHour = IntegervalueOf(hourStrtrim())intValue();

int currentMinute = IntegervalueOf(minuteStrtrim())intValue();

calendarset(currentYear, currentMonth, currentDay, currentHour,

currentMinute);

return calendar;

}

/

截取子串

@param srcStr

源串

@param pattern

匹配模式

@param indexOrLast

@param frontOrBack

@return

/

public static String spliteString(String srcStr, String pattern,

String indexOrLast, String frontOrBack) {

String result = "";

int loc = -1;

if (indexOrLastequalsIgnoreCase("index")) {

loc = srcStrindexOf(pattern); // 取得字符串第一次出现的位置

} else {

loc = srcStrlastIndexOf(pattern); // 最后一个匹配串的位置

}

if (frontOrBackequalsIgnoreCase("front")) {

if (loc != -1)

result = srcStrsubstring(0, loc); // 截取子串

} else {

if (loc != -1)

result = srcStrsubstring(loc + 1, srcStrlength()); // 截取子串

}

return result;

}

}

/DateTimePicker/src/com/wwj/datetimepicker/DateTimePickerActivityjava

[java] view plain copy

package comwwjdatetimepicker;

import androidappActivity;

import androidosBundle;

import androidviewView;

import androidviewViewOnClickListener;

import androidwidgetEditText;

/

时间拾取器界面

@author wwj_748

/

public class DateTimePickerActivity extends Activity {

/ Called when the activity is first created /

private EditText startDateTime;

private EditText endDateTime;

private String initStartDateTime = "2013年9月3日 14:44"; // 初始化开始时间

private String initEndDateTime = "2014年8月23日 17:44"; // 初始化结束时间

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmain);

// 两个输入框

startDateTime = (EditText) findViewById(RidinputDate);

endDateTime = (EditText) findViewById(RidinputDate2);

startDateTimesetText(initStartDateTime);

endDateTimesetText(initEndDateTime);

startDateTimesetOnClickListener(new OnClickListener() {

public void onClick(View v) {

DateTimePickDialogUtil dateTimePicKDialog = new DateTimePickDialogUtil(

DateTimePickerActivitythis, initEndDateTime);

dateTimePicKDialogdateTimePicKDialog(startDateTime);

}

});

endDateTimesetOnClickListener(new OnClickListener() {

public void onClick(View v) {

DateTimePickDialogUtil dateTimePicKDialog = new DateTimePickDialogUtil(

DateTimePickerActivitythis, initEndDateTime);

dateTimePicKDialogdateTimePicKDialog(endDateTime);

}

});

}

}

自定义界面:

/DateTimePicker/res/layout/common_datetimexml

[html] view plain copy

<xml version="10" encoding="utf-8">

<LinearLayout xmlns:android=">

这是一个Android原生的控件,一个日期控件,如你所说,有年月日

第一步:

获取DatePicker的控件

DatePicker mDatePicker = (DatePicker)findViewById(RiddatePicker);

第二步:

初始化并设置监听

mDatePickerinit(mYear,mMonth,mDay,new DatePickerOnDateChangeListener()

{

@Override

public void onDateChanged(DatePicker view,int year,int monthOfYear,int dayOfMonth)

{

//Todo 对获取的日期进行处理,例如

ToastmakText(mContext,""+year+monthOfYear+dayOfMonth,1000)show();

}

}

获取年月日,之前的日期不能选择

日历c = CalendargetInstance(); //获取系统的工具类可以获取时间DatePickerDialog datePickerDialog = new DatePickerDialog(context,new DatePickerDialogOnDateSetListener(){@覆盖public void onDateSet(DatePicker view,int year,int month,int dayOfMonth){月+ = 1;yuyueTimesetText(year +“ - ”+ month +“ - ”+ dayOfMonth);}},cget(CalendarYEAR),cget(CalendarMONTH),cget(CalendarDATE)); //设置默认时间。datePickerDialoggetDatePicker()setMinDate(cgetTime()的getTime()); //设置最小值datePickerDialogshow();

相关类的认识

选取器(的DatePicker,TimerPicker,NumberPicker)

其中的DatePicker和TimerPicker都有窗口的形式显示日期和时间,再返回数据。

下面分别介绍这几种时间类的使用方法。

一DatePicker日期选择类的使用

DatePicker的常用的XML属性

XML属性

描述

机器人:calendarViewShown    设置该日期选择是否显示CalendarView组件。  

机器人:endYear    设置日期选择器允许选择的最后一年。  

安卓的maxDate    设置该日期选择器的最大日期。以MM / DD / YYYY格式指定最大日期。  

安卓的minDate    设置该日期选择器的最小日期。以MM / DD / YYYY格式指定最小日期。  

机器人:spinnersShown    设置该日期选择器是否显示微调日期选择组件。  

机器人:startYear    设置日期选择器允许选择的第一年。  

当用户更改了的DatePicker里的年,月,日时,将触发OnDateChangedListener监听器的onDateChange()事件。

二TimePicker日期选择类的使用

当用户更改了TimePicker里的时,分时,将触发OnTimeChangedListener监听器的onTimeChanged事件。

下面是日期选择类和时间选择类的一个使用示例:

(一)布局文件设计

<LinearLayout xmlns:android=">

1

(二)主代码设计

package comexampletimer;import javautilCalendar;import androidappActivity;import androidosBundle;import androidwidgetDatePicker;import androidwidgetDatePickerOnDateChangedListener;import androidwidgetTextView;import androidwidgetTimePicker;import androidwidgetTimePickerOnTimeChangedListener;public class MainActivity extends Activity {int year = 0;int monthOfYear = 0;int dayOfMonth = 0;int minute = 0;int houre = 0;TextView showDate = null;TextView showtime = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {superonCreate(savedInstanceState);setContentView(Rlayoutactivity_main);initView();showDate(year, monthOfYear + 1, dayOfMonth);showTime(houre, minute);}private void initView() {// 日期控件对象DatePicker date = (DatePicker) findViewById(Ridmain_dp);// 获得日历对象Calendar c = CalendargetInstance();// 获取当前年份year = cget(CalendarYEAR);// 获取当前月份monthOfYear = cget(CalendarMONTH);// 获取当前月份的天数dayOfMonth = cget(CalendarDAY_OF_MONTH);// 获取当前的小时数houre = cget(CalendarHOUR_OF_DAY);// 获取当前的分钟数minute = cget(CalendarMINUTE);// 时间显示的文本对象showDate = (TextView) findViewById(Ridmain_tv_showdate);// 为日期设置监听事件dateinit(year, monthOfYear, dayOfMonth, new OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) {MainActivitythisyear = year;MainActivitythismonthOfYear = monthOfYear;MainActivitythisdayOfMonth = dayOfMonth;showDate(year, monthOfYear + 1, dayOfMonth);}});// 显示时间的文本控件showtime = (TextView) findViewById(Ridmain_tv_showtime);// 时间显示的控件TimePicker time = (TimePicker) findViewById(Ridmain_tp_showTime);// 为时间控件设置监听事件timesetOnTimeChangedListener(new OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {showTime(hourOfDay, minute);}});}//显示日期的方法private void showDate(int year, int monthOfYear, int dayOfMonth) {showDatesetText("日期是:" + year + "年" + monthOfYear + "月" + dayOfMonth+ "日");}//显示时间的方法private void showTime(int houre2, int minute2) {showtimesetText("时间是:" + houre2 + "时" + minute2 + "分");}}

1

运行后显示的结果:

可以从运行结果直接看到,控件的显示,可以上下拖动选择自己想要的日期和时间,但是,我们看到这样做是比较占屏幕空间的。所以后面介绍的用窗口选择日期和时间是比较常用的。

三。DatePickerDialog

DatePickerDialog和TimePickerDialog,与的DatePicker和TimePicker,最大的区别是的DatePicker和TimePicker是直接显示在屏幕画面上的,而DatePickerDialog和TimePickerDialog对象则是以d出对话框的方式来显示。

创建DatePickerDialog的语法如下:

DatePickerDialog(Context context, DatePickerDialogOnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

1

参数说明:

上下文:当前上下文;

回调:OnDateSetListener日期改变监听器;

年:初始化的年;

monthOfYear:初始化的月(从0开始计数,所以实际应用时需要加1);

请将dayOfMonth:初始化的日;

当用户更改了DatePickerDialog里的年,月,日时,将触发OnDateSetListener监听器的onDateSet()事件。

四。TimePickerDialog

创建TimePickerDialog的语法如下:

TimePickerDialog(Context context, TimePickerDialogOnTimeSetListener listener, int hourOfDay,int minute, boolean is24HourView)

1

参数说明:

上下文:当前上下文;

听众:时间改变监听器;

hourOfDay:初始化的小时;

分钟:

初始化的分钟; is24HourView:是否以24小时显示时间;

当用户更改了TimePickerDialog里的时,分时,将触发OnTimeSetListener监听器的onTimeSet()事件。

下面是日期和时间以窗口的形式显示的示例:

(一)布局文件设计

<xml version="10" encoding="utf-8"><LinearLayout xmlns:android=";

1

(二)代码设计

package comjavapickerDialog;import comexampletimerR;import androidappActivity;import androidappDatePickerDialog;import androidappTimePickerDialog;import androidosBundle;import androidviewView;import androidwidgetDatePicker;import androidwidgetTextView;import androidwidgetTimePicker;public class PickerDialog extends Activity {TextView tv_date = null;TextView tv_time = null;int year = 2016;int month = 10;int day = 8;int houre = 15;int minute = 20;@Overrideprotected void onCreate(Bundle savedInstanceState) {superonCreate(savedInstanceState);setContentView(Rlayoutactivity_pickerdialog);initView();}private void initView() {tv_date = (TextView) findViewById(Riddialog_tv_date);tv_time = (TextView) findViewById(Riddialog_tv_time);}// 点击事件,湖区日期public void getDate(View v) {new DatePickerDialog(this, new DatePickerDialogOnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {PickerDialogthisyear = year;month = monthOfYear;day = dayOfMonth;}}, 2016, 10, 8)show();showDate();}// 点击事件,湖区日期public void getTime(View v) {new TimePickerDialog(this, new TimePickerDialogOnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {houre = hourOfDay;PickerDialogthisminute = minute;}}, 15, 20, true)show();showTime();}// 显示选择日期private void showDate() {tv_datesetText("你选择的日期是:" + year + "年" + month + "月" + day + "日");}// 显示选择日期private void showTime() {tv_timesetText("你选择的时间是:" + houre + "时" + minute + "分");}}

1

运行后显示的界面:

点击日期按钮后

点击时间按钮后

之后显示的效果

这个以对话框的形式来选择时间还是比较常见的。而且用户体验也是比较好的。

五。NumberPicker

NumberPicker是数值选择器,用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值。

NumberPicker的常用方法如下:

方法

描述

setMinValue(int minVal)    设置该组件支持的最小值。  

setMaxValue(int maxVal)    设置该组件支持的最大值。  

setValue(int value)    设置该组件的当前值。  

getMaxValue()    获得该组件设置的最大值。  

getMinValue()    获得该组件设置的最小值。  

的getValue()    获得当前组件显示的值。  

setValue(int value)    设置当前组件显示的值。  

使用NumberPicker让用户选择年月日的示例:

(一)布局文件设计

<xml version="10" encoding="utf-8"><LinearLayout xmlns:android=";

1

(二)的Java代码的设计

package comjavatimepicker;import androidappActivity;import androidosBundle;import androidwidgetNumberPicker;import androidwidgetNumberPickerOnValueChangeListener;import androidwidgetTextView;import comexampletimerR;public class NumberPickerActivity extends Activity {NumberPicker num_year = null;NumberPicker num_month = null;NumberPicker num_day = null;TextView tv_year = null;int year = 2016;int month = 10;int day = 8;@Overrideprotected void onCreate(Bundle savedInstanceState) {superonCreate(savedInstanceState);setContentView(Rlayoutactivity_numberpicker);initView();}private void initView() {// 实例化NumberPicker对象num_year = (NumberPicker) findViewById(Ridnumber_np_year);num_month = (NumberPicker) findViewById(Ridnumber_np_month);num_day = (NumberPicker) findViewById(Ridnumber_np_day);// 实例化显示年份的文本对象Ftv_year = (TextView) findViewById(Ridnumber_tv_year);initYear();initMonth();initDay();}private void initYear() {// 设置NumberPicker对象的相关属性num_yearsetMaxValue(100000);num_yearsetMinValue(1900);num_yearsetValue(2016);// 为NumberPicker设置监听事件num_yearsetOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {year = newVal;showDate();}});}private void initMonth() {// 设置NumberPicker对象的相关属性num_monthsetMaxValue(12);num_monthsetMinValue(1);num_monthsetValue(10);// 为NumberPicker设置监听事件num_monthsetOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {month = newVal;showDate();}});}private void initDay() {// 设置NumberPicker对象的相关属性num_daysetMaxValue(31);num_daysetMinValue(1);num_daysetValue(8);// 为NumberPicker设置监听事件num_daysetOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {day = newVal;showDate();}});}void showDate() {tv_yearsetText("你选择的日期是:" + year + "年" + month + "月" + day + "日");}}

1

程序运行后的效果:

选择日期之后的效果

可以看到同样可以显示出日期。

这里是用来三个NumberPicker控件才能有这个效果,如果要具体时间要多加两个NumberPicker控件,就可以了。

但是这样做相对来的要出来的数据还是比较多一点的。

以上就是时间控件的使用的方法和简单使用,总的来的还是以窗口的形式来显示还是比较符合设计思想的,也是我们要重点掌握的。

以上就是关于如何 让android app 中文显示年月日全部的内容,包括:如何 让android app 中文显示年月日、android 怎么比较日期选择器的选择的时间和系统当前的时间、android 的DatePicker怎么取出 年月日的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9462578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存