Java时间戳与日期转换全攻略

版权申诉
1 下载量 146 浏览量 更新于2024-09-13 收藏 54KB PDF 举报
"这篇Java教程主要讲解了如何在Java中进行时间戳与日期之间的相互转换,包括使用不同的工具和方法。作者提供了实用的代码示例,适用于需要处理日期和时间戳转换的开发者。" 在Java编程中,时间戳与日期之间的转换是常见的任务,特别是在处理与日期相关的业务逻辑或数据分析时。时间戳是一个表示特定日期和时间的数字,通常以秒或毫秒为单位自1970年1月1日(UTC/GMT的午夜)开始计算。而日期对象则是一个包含年、月、日、小时、分钟等信息的结构。 Java提供了多种工具来实现这种转换,其中最常用的是`java.util.Date`、`java.util.Calendar`、`java.text.SimpleDateFormat`以及`java.time`包中的类。以下是一些关键知识点: 1. **`java.util.Date`**: 这是Java早期的日期类,用于表示日期和时间。它有一个`getTime()`方法,返回以毫秒为单位的时间戳,还有一个`parse(String dateStr)`静态方法,可以将字符串转换为日期对象。 2. **`java.util.Calendar`**: 这是一个更通用的日历类,可以用来处理日期和时间的加减、设置等操作。通过`Calendar.getInstance()`获取实例,然后使用`set()`方法设置日期字段,`getTimeInMillis()`获取时间戳。 3. **`java.text.SimpleDateFormat`**: 这是一个强大的日期/时间格式化类,可以将日期对象转换为字符串,也可以将字符串解析为日期对象。使用`SimpleDateFormat`需要创建实例并指定日期格式,如"yyyy-MM-dd HH:mm:ss",然后调用`format(Date date)`或`parse(String dateStr)`。 4. **`java.time`包**: 自Java 8开始引入的新时间日期API,提供了更加易用且功能丰富的类,如`LocalDateTime`、`Instant`等。`Instant.now().toEpochMilli()`可以获取当前时间戳,而`LocalDateTime.parse(String dateStr, DateTimeFormatter formatter)`可以将字符串转换为日期。 在提供的代码示例中,`DateFormatUtil`类展示了如何使用这些工具进行转换: - `transForDate(Integer ms)` 方法将时间戳(以毫秒为单位)转换为`Date`对象,如果输入为空,则默认为0。 - `getTimes(int day, int hour, int minute)` 方法计算指定天数、小时和分钟后的晚上9点半的时间戳。 在实际开发中,可以根据需求选择合适的方法进行转换。对于需要精确到秒或毫秒的情况,`java.time`包的类更为推荐,因为它们提供了更好的性能和易用性。而对于兼容旧版本Java的应用,`Date`和`SimpleDateFormat`仍是不错的选择。理解并掌握这些转换工具对于编写高效、可靠的Java日期处理代码至关重要。