在Android中获取年,月和日期

时间:2012-09-02 06:05:49

标签: android calendar

我正在尝试使用以下代码获取今天的年,月和日期;

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年日期”,这不是今天的日期。我做错了什么?

9 个答案:

答案 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());