我正在尝试使用以下代码获取今天的年,月和日期;
Calendar calendar = Calendar.getInstance();
int thisYear = calendar.get(Calendar.YEAR);
Log.d(TAG, "# thisYear : " + thisYear);
int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + thisMonth);
int thisDay = calendar.get(Calendar.DAY_OF_MONTH);
Log.d(TAG, "$ thisDay : " + thisDay);
但它给出了“2012年第1年和第28年日期”,这不是今天的日期。我做错了什么?
答案 0 :(得分:21)
假设这是在模拟器上运行,我会是正确的吗?如果是这样,请正确设置模拟器日期,它应该是正确的。
从内存中,该代码应该按照您的期望进行。
答案 1 :(得分:12)
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)
答案 2 :(得分:7)
月份从零开始,因此您必须在给定月份添加1以显示我们熟悉的月份数。
int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + (thisMonth+1));
这将显示从1开始的当前月份。
答案 3 :(得分:3)
尝试这个..
Calendar instance = Calendar.getInstance();
currentMonth = instance.get(Calendar.MONTH);
currentYear = instance.get(Calendar.YEAR);
int month=currentMonth+1;
答案 4 :(得分:3)
import java.util.Calendar;
import java.util.TimeZone;
import android.widget.Toast;
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH) + 1;
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
Toast.makeText(this,"Today's Date: " + currentYear + currentMonth + currentDay, Toast.LENGTH_SHORT).show();
如果您的应用程序针对Android API 27平台或更高版本,“ TimeZone”将非常有用
答案 5 :(得分:2)
我尝试了你的代码,它提供了正确的输出。您应该尝试在您尝试使用此代码的模拟器/手机中检查时间。
根据getInstance文档,它默认设置为当前日期和时间。
答案 6 :(得分:2)
尝试使用:
Date dt = new Date();
dt.getYear();
dt.getMonth();
dt.getDay();
看看你是否得到了相同的结果。 如果是这样,您的系统日期可能不同步。 查看the Date class documentation了解详情:
答案 7 :(得分:1)
这给出了你的Android系统的时间和日期,所以先检查一下。
答案 8 :(得分:0)
您可以使用SimpleDateFormat
初始化为 @SuppressLint("SimpleDateFormat") final SimpleDateFormat dateAndTime = new SimpleDateFormat("DD-MM-yy", Locale.getDefault());
和String timeStamp = dateAndTime.format(new Date());