📜  Android 中的日期和时间格式(1)

📅  最后修改于: 2023-12-03 15:13:21.436000             🧑  作者: Mango

Android 中的日期和时间格式

在 Android 应用开发中,我们经常需要处理日期和时间。Android 提供了一套强大的日期和时间格式化工具,使得我们可以方便地处理和显示日期和时间。

概述

Android 提供了两个主要的类来处理日期和时间:DateCalendarDate 类用于表示一个日期和时间点,而 Calendar 类则提供了更为灵活的日期和时间操作。

除此之外,Android 还提供了用于格式化日期和时间的类:SimpleDateFormatDateFormatTimeFormat

SimpleDateFormat 用法

SimpleDateFormat 是一个用于格式化和解析日期和时间的类。它使用一些预定义的模式来指定日期和时间的显示格式。

以下是一个简单的例子,演示了如何使用 SimpleDateFormat 格式化日期和时间:

import java.text.SimpleDateFormat;
import java.util.Date;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(new Date());
        
        TextView textView = findViewById(R.id.textView);
        textView.setText(formattedDate);
    }
}

上面的代码将当前日期和时间格式化为 "yyyy-MM-dd HH:mm:ss" 的形式,并将其显示在一个 TextView 中。

以下是一些常用的日期和时间模式:

  • 年份:yyyy(4 位数),yy(2 位数)
  • 月份:MM(两位数),M(一位数),MMMM(带有月份名)
  • 日期:dd(两位数),d(一位数)
  • 小时:HH(24 小时制),hh(12 小时制)
  • 分钟:mm
  • 秒:ss
  • 上午/下午:a

SimpleDateFormat 中,你还可以使用特殊字符 ' 来转义显示字符本身。

日期和时间格式化 示例

以下是一些示例代码,展示了日期和时间格式化的不同情况:

格式化当前日期和时间:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(new Date());
解析日期和时间字符串:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2022-01-01 12:00:00");
显示星期几:
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
String dayOfWeek = sdf.format(new Date());
显示月份名:
SimpleDateFormat sdf = new SimpleDateFormat("MMMM");
String monthName = sdf.format(new Date());
自定义格式:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
String customFormat = sdf.format(new Date());
Calendar 类的操作

Calendar 类是一个用于处理日期和时间的强大工具。它提供了各种方法来操作和计算日期和时间。

以下是一些常用的 Calendar 操作:

获取当前日期和时间:
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
设置特定的日期和时间:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
添加和减去时间:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 7); // 添加 7 天
calendar.add(Calendar.HOUR_OF_DAY, -3); // 减去 3 小时
获取特定字段的值:
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 0 表示一月
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
总结

Android 中的日期和时间格式化是非常重要的,特别是在显示和解析用户输入、展示通知、生成文件名等场景下。本文介绍了使用 SimpleDateFormat 进行格式化和解析,以及使用 Calendar 类进行日期和时间操作的方法。

了解和掌握这些工具可以帮助程序员处理各种与日期和时间相关的任务,并提供更好的用户体验。