生也有涯,知也无涯。这篇文章主要讲述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】希望它会对你有所帮助。
推荐阅读
- Android Studio(我还可以在清单中使用带有appcompat主题的HOLO Light DatePicker吗())
- 设计Facebook参数app_id是必需的
- 如何在android中进行菜单选择器
- android(checkableBehavior =“single”不适用于分组子菜单)
- Android(菜单中的圆角)
- android.content.res.Resources $ NotFoundException API等级19
- 如何在Android ListView中为菜单项创建图标()
- Android中的自定义选项菜单栏问题
- Build.gradle无法解析com.android.support