我正在尝试将当前日期和时间格式化,这是我的代码:
Date date = new Date();
SimpleDateFormat FORMATTER = new SimpleDateFormat("yyyyMMdd-HHmm");
String formattedDate=""+FORMATTER.format(date);
Log.d("XXxxxXxXXXXxxxXXXxXxxxX",formattedDate);
出现问题,因为我收到了这个字符串:19700103-0217
该日期不正确,我应该得到这样的结果:20111118-1217
如何解决这个问题?
答案 0 :(得分:2)
问题是您的日期不正确。很难说如何,因为你没有显示它来自哪里,但这几乎肯定是问题所在。要确认这一点,请使用内置的Date.toString()
方法 - 使用系统默认时区,因此您需要小心,但至少应该看到正确的日期等。
Log.d("date.toString() - ", date.toString());
答案 1 :(得分:1)
我会说你执行代码的设备(或模拟器)的日期不正确。您的代码应该按预期工作。
在任何情况下,它都与SimpleDateFormat
无关,您使用它的方式是正确的。
答案 2 :(得分:1)
如果您的目标只是显示当前日期,那么您可以使用Calendar
。
使用日历,很容易以所需格式获取日期。
例如:
Calendar cal=Calendar.getInstance();
String year=String.format("%1$tY",cal);
String month=String.format("%1$tm",cal);
String day=String.format("%1$td",cal);
String hour=String.format("%1$tH",cal); // hour in 24 hour time format
String min=String.format("%1$M",cal);
String finalDateString=year+month+day+"-"+hour+min; //gives you in format like 20111118-1217
有关更多结构,请参阅this。
答案 3 :(得分:1)
获取当前日期。试试这个
Calendar c = Calendar.getInstance();
System.out.println("Current time => " + c.getTime());
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c.getTime());
答案 4 :(得分:0)
Calendar calendar=Calendar.getInstance();
//这将为您提供当月。
日期日期= calendar.getTime(); SimpleDateFormat format = new SimpleDateFormat(“MMM”);
String currentMonth = format.format(date);
//这将为您提供当月的当前日期。
SimpleDateFormat format1 = new SimpleDateFormat(“dd”); String currentDate = format1.format(date);
如果您需要其他格式,可以看到以下链接: http://developer.android.com/reference/java/text/SimpleDateFormat.html
答案 5 :(得分:-1)
好吧,我可以帮助你,但我有自己的代码。问你,如果你没有得到什么。
首先,您必须创建一个类似date.class的类,并编写代码:
public class Date{
private Date dt;
private String stDt;
private String enDt;
SRSDDate(){
dt=new Date();
int mn;
int yr;
mn=dt.getMonth();
yr=dt.getYear();
mn=mn+1;
yr=1900+yr;
stDt="1/"+mn+"/"+yr;
switch(yr%4){
case 0:
if(mn==2){
enDt="29/"+mn+"/"+yr;
}
else if(mn==1||mn==3||mn==5||mn==7||mn==8||mn==10||mn==12){
enDt="31/"+mn+"/"+yr;
}
else{
enDt="30/"+mn+"/"+yr;
}
break;
default:
if(mn==2){
enDt="28/"+mn+"/"+yr;
}
else if(mn==1||mn==3||mn==5||mn==7||mn==8||mn==10||mn==12){
enDt="31/"+mn+"/"+yr;
}
else{
enDt="30/"+mn+"/"+yr;
}
break;
}
}
public String getTodayDate(){
return (dt.getYear()+1900)+"-"+(dt.getMonth()+1)+"-"+dt.getDate();
}
public String getTodayDisplayDate(){
return dt.getDate()+"/"+(dt.getMonth()+1)+"/"+(dt.getYear()+1900);
}
public String getStDt(){
return stDt;
}
public String getEnDt(){
return enDt;
}
}
上课后,你必须声明:
Calendar FromDateCal=Calendar.getInstance();
DatePickerDialog.OnDateSetListener fd=new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth) {
FromDateCal.set(Calendar.YEAR, year);
FromDateCal.set(Calendar.MONTH, monthOfYear);
FromDateCal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateFromDate();
}
};
现在找到要在其中显示日期的编辑框:
Date dt=new Date();
FromDateText=(EditText)findViewById(R.id.FromDateText);
FromDateText.setText(dt.getStDt());
现在您必须在编辑框中显示日期,如下所示:
private void updateFromDate(){
int iDay;
int iMonth;
int iYear;
iDay=FromDateCal.get(Calendar.DATE);
iMonth=FromDateCal.get(Calendar.MONTH);
iMonth=iMonth+1;
iYear=FromDateCal.get(Calendar.YEAR);
String sFDate=iDay+"/"+iMonth+"/"+iYear;
FromDateText.setText(sFDate);
}
我希望你能得到答案。