Android将日期转为时间戳

概述

在Android开发中,经常需要将日期转换为时间戳的形式进行处理。时间戳是指自1970年1月1日0时0分0秒起到指定日期时间的秒数,通常用于表示时间的绝对值。本文将介绍如何在Android中将日期转换为时间戳,并提供相应的代码示例。

时间戳和日期的关系

时间戳和日期之间存在一种对应关系,可以通过时间戳将日期转换为特定的格式,或者通过日期将时间戳转换为可阅读的日期。下面是时间戳和日期之间的关系图。

erDiagram
          TIME STAMP }|..|{ DATE
          TIME STAMP }|..|{ FORMAT

使用Java类库进行转换

在Android中,可以使用Java类库提供的相关类来进行日期和时间戳之间的转换。下面是一个使用java.util.Datejava.text.SimpleDateFormat类的示例代码:

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

public class DateUtils {

    // 将日期转换为时间戳
    public static long dateToTimestamp(String dateStr, String formatStr) {
        try {
            SimpleDateFormat format = new SimpleDateFormat(formatStr);
            Date date = format.parse(dateStr);
            return date.getTime();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }

    // 将时间戳转换为日期
    public static String timestampToDate(long timestamp, String formatStr) {
        try {
            SimpleDateFormat format = new SimpleDateFormat(formatStr);
            Date date = new Date(timestamp);
            return format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}

上述代码中,dateToTimestamp方法将指定格式的日期字符串转换为时间戳,timestampToDate方法将时间戳转换为指定格式的日期字符串。

以下是使用示例:

String dateStr = "2022-01-01 12:00:00";
String formatStr = "yyyy-MM-dd HH:mm:ss";

// 将日期转换为时间戳
long timestamp = DateUtils.dateToTimestamp(dateStr, formatStr);
System.out.println("Timestamp: " + timestamp);

// 将时间戳转换为日期
String date = DateUtils.timestampToDate(timestamp, formatStr);
System.out.println("Date: " + date);

使用Android类库进行转换

除了使用Java类库,Android还提供了自己的类库来进行日期和时间戳之间的转换。Android中的日期和时间戳的转换可以使用java.util.Calendar类和android.text.format.DateFormat类。下面是一个使用Android类库的示例代码:

import java.util.Calendar;
import android.text.format.DateFormat;

public class DateUtils {

    // 将日期转换为时间戳
    public static long dateToTimestamp(String dateStr, String formatStr) {
        try {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(DateFormat.parse(formatStr, dateStr));
            return calendar.getTimeInMillis();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }

    // 将时间戳转换为日期
    public static String timestampToDate(long timestamp, String formatStr) {
        try {
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(timestamp);
            return DateFormat.format(formatStr, calendar).toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}

上述代码中,dateToTimestamp方法将指定格式的日期字符串转换为时间戳,timestampToDate方法将时间戳转换为指定格式的日期字符串。

以下是使用示例:

String dateStr = "2022-01-01 12:00:00";
String formatStr = "yyyy-MM-dd HH:mm:ss";

// 将日期转换为时间戳
long timestamp = DateUtils.dateToTimestamp(dateStr, formatStr);
System.out.println("Timestamp: " + timestamp);

// 将时间戳转换为日期
String date = DateUtils.timestampToDate(timestamp, formatStr);
System.out.println("Date: " + date);

总结

本文介绍了在Android中将日期转换为时间戳的方法,并提供了使用Java类库和Android类库的代码示例。无论使用哪种方法,都可以简单快速地实现日期和时间戳之间的转换。在实际开发中,根据具体需求选择合适的方法进行使用。

参考资料

  • [Java SimpleDateFormat