Android格式的日期为Datepicker的MM-DD-YYYY

生也有涯,知也无涯。这篇文章主要讲述Android格式的日期为Datepicker的MM-DD-YYYY相关的知识,希望能为你提供帮助。
我有一个日期选择器。我的应用正在推送通知。我想以01-07-2013 MM-dd-yyyy格式显示日期。请检查下面的代码:

//---Button view--- Button btnOpen = ( Button ) findViewById( R.id.btEventDone ); btnOpen.setOnClickListener( new View.OnClickListener() {public void onClick(View v) {String strT = title.getText().toString(); String strDes = description.getText().toString(); // check if user did not input anything if( strT.isEmpty() || strDes.isEmpty() ){Toast.makeText( getBaseContext(), "You have blank fields!", Toast.LENGTH_SHORT ).show(); } else{//---use the AlarmManager to trigger an alarm--- AlarmManager alarmManager = ( AlarmManager ) getSystemService( ALARM_SERVICE ); //---get current date and time--- Calendar calendar = Calendar.getInstance(); //---sets the time for the alarm to trigger--- calendar.set( Calendar.YEAR, date.getYear() ); calendar.set( Calendar.MONTH, date.getMonth() ); calendar.set( Calendar.DAY_OF_MONTH, date.getDayOfMonth() ); calendar.set( Calendar.HOUR_OF_DAY, time.getCurrentHour() ); calendar.set( Calendar.MINUTE, time.getCurrentMinute() ); calendar.set( Calendar.SECOND, 0 ); //---PendingIntent to launch activity when the alarm triggers--- Intent i = new Intent( CalendarEvent.this, DisplayNotification.class ); year = calendar.get( Calendar.YEAR ); month = calendar.get( Calendar.MONTH ); day = calendar.get( Calendar.DAY_OF_MONTH ); hour = calendar.get( Calendar.HOUR ); minute = calendar.get( Calendar.MINUTE ); Date d = new Date(year, month, day); SimpleDateFormat dateFormatter = new SimpleDateFormat( "MM-dd-yyyy"); String strDate = dateFormatter.format(d); String strTitle = title.getText().toString(); String strDescription = description.getText().toString(); strDate = String.valueOf( month ) + "-" + String.valueOf( day ) + "-" + String.valueOf( year ); StringBuilder sb = new StringBuilder(); if(hour> =12){ sb.append(hour-12).append( ":" ).append(minute).append(" PM"); }else{ sb.append(hour).append( ":" ).append(minute).append(" AM"); } String strTime = sb.toString(); //---assign an ID of 1--- i.putExtra( "NotifID", notifID ); i.putExtra( "Title", strTitle ); i.putExtra( "Description", strDescription ); i.putExtra( "Date", strDate); i.putExtra( "Time", strTime ); PendingIntent displayIntent = PendingIntent.getActivity( getBaseContext(), notifID, i, 0 ); //---sets the alarm to trigger--- alarmManager.set( AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), displayIntent ); finish(); }} }); }

AlarmDetails:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.alarmdetails); //---look up the notification manager service--- NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE ); title = ( EditText ) findViewById ( R.id.etDetailTitle ); description = ( EditText ) findViewById ( R.id.etDetailDescription ); date = ( EditText ) findViewById ( R.id.etDetailDate ); time = ( EditText ) findViewById ( R.id.etDetailTime ); done = ( Button ) findViewById ( R.id.btnAlarmDone ); done.setOnClickListener(new View.OnClickListener() {public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); //---cancel the notification--- nm.cancel( getIntent().getExtras().getInt( "NotifID" ) ); String strTitle = getIntent().getExtras().getString( "Title" ); String strDescription = getIntent().getExtras().getString( "Description" ); strDate = getIntent().getExtras().getString( "Date" ); String strTime = getIntent().getExtras().getString( "Time" ); title.setText( strTitle ); description.setText( strDescription ); date.setText( strDate ); time.setText( strTime ); }

DisplayNotification:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //---get the notification ID for the notification; // passed in by the NotifyActivity--- int notifID = getIntent().getExtras().getInt( "NotifID" ); String strTitle = getIntent().getExtras().getString( "Title" ); String strDescription = getIntent().getExtras().getString( "Description" ); String strDate = getIntent().getExtras().getString( "Date" ); String strTime = getIntent().getExtras().getString( "Time" ); //---PendingIntent to launch activity if the user selects // the notification--- Intent i = new Intent( DisplayNotification.this, AlarmDetails.class ); i.putExtra( "NotifID", notifID ); i.putExtra( "Title", strTitle ); i.putExtra( "Description", strDescription ); i.putExtra( "Date", strDate ); i.putExtra( "Time", strTime ); PendingIntent detailsIntent = PendingIntent.getActivity(this, 0, i, 0); NotificationManager nm = ( NotificationManager ) getSystemService( NOTIFICATION_SERVICE ); Notification notif = new Notification( R.drawable.ic_launcher, "iHealthFirst: Notification!", System.currentTimeMillis() ); CharSequence from = "iHealthFirst - New Notification"; CharSequence message = "This is your alert, click to view"; notif.setLatestEventInfo(this, from, message, detailsIntent); notif.flags = Notification.FLAG_INSISTENT; notif.defaults |= Notification.DEFAULT_SOUND; //---100ms delay, vibrate for 250ms, pause for 100 ms and // then vibrate for 500ms--- notif.vibrate = new long[] { 100, 250, 100, 500}; nm.notify( notifID, notif ); //---destroy the activity--- finish(); }

我当前的应用程序仅以M-d-yyyy格式显示。我已经读过我们应该使用SimpleDateFormat,但我不知道如何在我的应用程序中使用它。有人可以帮忙吗?谢谢。
答案检查一下:
date format change in datepicker and calendar
year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH); day = calendar.get(Calendar.DAY_OF_MONTH); if(month < 10){month = "0" + month; } if(day < 10){day= "0" + day ; } searchText.setText(day + "-" + month + "-" + year);

另一答案试试这个:
CharSequence formatted = DateFormat.format("MM/dd/yyyy", mDueDate); mDueDateView.setText(formatted);

另一答案试试这个
int year = mDatePicker.getYear(); int month = mDatePicker.getMonth(); int day = mDatePicker.getDayOfMonth(); Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); String strDate = format.format(calendar.getTime());

另一答案您可以添加以下代码:
Date d = new Date(year, month, day); SimpleDateFormat dateFormatter = new SimpleDateFormat( "MM-dd-yyyy hh:mm"); strDate = dateFormatter.format(d);


year = calendar.get( Calendar.YEAR ); month = calendar.get( Calendar.MONTH ); day = calendar.get( Calendar.DAY_OF_MONTH ); hour = calendar.get( Calendar.HOUR ); minute = calendar.get( Calendar.MINUTE );

所以你的strDate将是你想要的格式(MM-dd-yyyy)
另一答案只需使用此代码..
date.setOnClickListener(new OnClickListener() {public void onClick(View v) { DatePickerDialog dateDlg = new DatePickerDialog(New_Quote_Activity.this, new DatePickerDialog.OnDateSetListener() {public void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) { CharSequence strDate = null; Time chosenDate = new Time(); chosenDate.set(dayOfMonth, monthOfYear, year); long dtDob = chosenDate.toMillis(true); strDate = DateFormat.format("MM/dd/yyyy", dtDob); txtDate.setText(strDate); }}, year,month,day); dateDlg.show(); } });

另一答案一个简单的方法可能是简单地收集数据,然后使用String.format:
int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); String dateString = String.format("%02d-%02d-%d", month, day, year); ((TextView) m_view.findViewById(R.id.dob)).setText(dateString);

另一答案试试这种方式:
private int m_month, m_year, m_day; SimpleDateFormat dateParser = new SimpleDateFormat("MM-dd-yyyy", Locale.ENGLISH); m_month = m_calendar.get(Calendar.MONTH) + 1; m_year = m_calendar.get(Calendar.YEAR); m_day = m_calendar.get(Calendar.DAY_OF_MONTH); //for the datepicker listener. m_calendar.set(Calendar.YEAR, p_year); m_calendar.set(Calendar.MONTH, p_monthOfYear); m_calendar.set(Calendar.DAY_OF_MONTH, p_dayOfMonth); String m_sDate = dateParser.format(m_calendar.getTime()).toString();

另一答案我试着在我的项目中关注。它可能对你有帮助。询问您是否有任何疑问。
try{ SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); Date originalDate = new Date(); //it will give today's date. String dateString = sdf.format(originalDate); Date formattedDate = sdf.parse(dateString); }catch(Exception e){ e.printStackTrace(); }

另一答案
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class MainClass { public static void main(String[] args) { String pattern = "MM-dd-yyyy"; SimpleDateFormat format = new SimpleDateFormat(pattern); try { Date date = format.parse("01-07-2013"); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); }System.out.println(format.format(new Date())); } }

希望它有所帮助。
你也可以refer to the documentation。
另一答案
我想以01-07-2013 MM-dd-yyyy格式显示日期。
是的你可以通过下面的步骤来做到这一点
第1步:首先必须将字符串转换为特定日期格式
第2步:使用SimpleDateFormat将日期转换为MM-dd-yyyy格式
第3步:转换为字符串并使用它。
您可以使用以下用户代码。
public class DateFormat {public static void main(String[] args) { // Put here what your are getting as String String mytime="Jan 7, 2013"; SimpleDateFormat dateFormat = new SimpleDateFormat( "MMM dd, yyyy"); //Step1: Convert yout String to perticular Date Formate according to your Date String your are getting Date myDate = null; try { myDate = dateFormat.parse(mytime); } catch (ParseException e) { e.printStackTrace(); }//Step2 SimpleDateFormat timeFormat = new SimpleDateFormat("MM-dd-yyyy"); String finalDate = timeFormat.format(myDate); //Step3: Here you will get your Final Date. Set your String now to textview. } }

【Android格式的日期为Datepicker的MM-DD-YYYY】希望它会对你有所帮助。

    推荐阅读