45

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

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

4

9 回答 9

23

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

根据记忆,该代码应该符合您的预期。

于 2012-09-02T06:16:48.060 回答
16
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)
于 2014-11-12T12:26:52.827 回答
13
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”将非常有用

于 2018-10-29T06:24:39.530 回答
8

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

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

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

于 2016-12-22T03:10:06.240 回答
3

试试这个。。

 Calendar instance = Calendar.getInstance();
 currentMonth = instance.get(Calendar.MONTH);
 currentYear = instance.get(Calendar.YEAR);

 int month=currentMonth+1;
于 2018-01-10T08:13:47.157 回答
2

尝试使用:

Date dt = new Date(); 
dt.getYear(); 
dt.getMonth(); 
dt.getDay();

看看你是否得到相同的结果。如果是这样,您的系统日期可能不同步。查看Date 类文档以获取更多详细信息:

于 2012-09-02T06:29:12.137 回答
2

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

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

于 2012-09-02T06:16:04.703 回答
1

这给出了你的 android 系统的时间和日期,所以首先检查它。

于 2012-09-02T06:17:47.920 回答
0

您可以使用SimpleDateFormat

初始化为@SuppressLint("SimpleDateFormat") final SimpleDateFormat dateAndTime = new SimpleDateFormat("DD-MM-yy", Locale.getDefault());

String timeStamp = dateAndTime.format(new Date());

于 2021-01-27T06:53:54.447 回答