在Android中获取年,月和日期

Era*_*ris 39 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);
Run Code Online (Sandbox Code Playgroud)

但它给出了"2012年第1年和第28年日期",这不是今天的日期.我做错了什么?

Jam*_*mes 22

假设这是在模拟器上运行,我会是正确的吗?如果是这样,请正确设置模拟器日期,它应该是正确的.

从内存中,该代码应该按照您的期望进行.

  • @ErangaPeris因为它基于零.均值0表示第一个月. (9认同)

小智 15

Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)
Run Code Online (Sandbox Code Playgroud)


小智 12

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();
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序面向 Android API 27 平台或更高版本,“TimeZone”将非常有用


Sha*_*uza 7

月份从零开始,因此您必须在给定月份添加1以显示我们熟悉的月份编号.

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + (thisMonth+1));
Run Code Online (Sandbox Code Playgroud)

这将显示从1开始的当前月份.


AAn*_*kit 2

我尝试了你的代码,它给出了正确的输出。您应该尝试检查您正在尝试此代码的模拟器/手机中的时间

根据 getInstance 文档,它默认设置为当前日期和时间。