📜  android 时间 - Java (1)

📅  最后修改于: 2023-12-03 14:59:16.445000             🧑  作者: Mango

Android 时间 - Java

概述

在 Android 开发中,我们经常需要使用时间和日期来处理各种任务,例如显示当前时间、计算时间差、格式化日期等。Java 作为 Android 开发的主要语言,提供了丰富的时间处理类和方法,可以帮助我们轻松处理时间相关的操作。

本文将介绍在 Android 开发中使用 Java 处理时间的常用类和方法,包括日期时间的表示、获取当前时间、格式化日期、时间戳转换等。

日期和时间的表示

在 Java 中,日期和时间可以使用 java.util.Datejava.util.Calendar 类来表示。

Date

Date 类表示特定的瞬间,可以精确到毫秒级别。其构造方法可以接受一个表示日期时间的长整型值(时间戳)或使用当前时间。例如:

Date now = new Date(); // 使用当前时间创建 Date 对象
Date specificDate = new Date(1617809885000L); // 使用时间戳创建 Date 对象
Calendar

Calendar 类提供了一个抽象基类,用于将日期和时间信息封装为具体的字段值。可以使用 Calendar.getInstance() 方法获取一个默认的 Calendar 对象,然后进行日期和时间的设置、获取等操作。例如:

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); // 获取当前小时数(24 小时制)
int minute = calendar.get(Calendar.MINUTE); // 获取当前分钟数
int second = calendar.get(Calendar.SECOND); // 获取当前秒数
获取当前时间

获取当前时间的方式有很多种,可以使用 Date 类也可以使用 Calendar 类。以下是两种常见的方式:

使用 Date
Date now = new Date();
long timestamp = now.getTime(); // 获取当前时间的时间戳
使用 Calendar
Calendar calendar = Calendar.getInstance();
long timestamp = calendar.getTimeInMillis(); // 获取当前时间的时间戳
格式化日期

在 Android 开发中,我们经常需要将日期格式化为指定的字符串,或者将字符串解析为日期对象。Java 提供了 SimpleDateFormat 类来进行日期的格式化和解析。

以下是一个将日期格式化为字符串的示例:

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
String formattedDate = sdf.format(now); // 将日期格式化为字符串

以下是一个将字符串解析为日期对象的示例:

String dateStr = "2021-04-08 10:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
Date parsedDate = sdf.parse(dateStr); // 将字符串解析为日期对象
时间戳转换

在 Android 开发中,常常需要将时间戳(以毫秒为单位)转换为可读的日期时间字符串,或者将日期时间字符串转换为时间戳。Java 提供了 SimpleDateFormat 类来进行时间戳和日期时间字符串的转换。

以下是一个将时间戳转换为日期时间字符串的示例:

long timestamp = 1617809885000L;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
String formattedDate = sdf.format(new Date(timestamp)); // 将时间戳转换为日期时间字符串

以下是一个将日期时间字符串转换为时间戳的示例:

String dateStr = "2021-04-08 10:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
Date parsedDate = sdf.parse(dateStr);
long timestamp = parsedDate.getTime(); // 将日期时间字符串转换为时间戳
结论

在 Android 开发中,日期和时间的处理是常见的任务之一。本文介绍了使用 Java 处理日期和时间的常用类和方法,包括日期和时间的表示、获取当前时间、格式化日期、时间戳转换等。掌握这些知识,将帮助程序员更好地处理时间相关的操作,提高开发效率。

扩展阅读: