java日期类使用

日期函数毫秒时间与date之间的切换使用

1.获取日期毫秒值 getTime()方法。
2.毫秒值转日期:
long time = System.currentTimeMillis();
Date date = new Date(); date.setTime(time);
System.out.println(date);
3.根据给定的毫秒值创建日期对象:
long time = System.currentTimeMillis();
Date date = new Date(time);
4.收藏的一个博客地址,算是一个来源吧

1.编写类MyDate.java 2.该类有如下构造方法 2.1 无参数构造方法public MyDate(),以当前的系统时间构造MyDate对象 2.2 public MyDate(int year, int month, int day), 以指定的年月日构造MyDate对象 3.该类有如下属性 3.1 private int year ;//年 3.2 private int month; //月 3.3 private int day; //日 4.该类有如下方法 4.1 public String after(int day); //返回当前对象代表的日期之后day天的日期,比如当前对象是2008-8-8,调用after(5)以后,应该返回2008-8-13,格式可自定义 4.2 public String before(int day); //返回当前对象代表的日期之前day天的日期,比如当前对象是2008-8-8,调用before(5)以后,应该返回2008-8-3,格式可自定义 4.3 public void setYear(int year); //设置年为指定值year 4.4 public void setMonth(int month); //设置月为指定值month 4.5 public void setDay(int day); //设置日为指定值day 4.6 public int getYear(); //返回当前对象的年 4.7 public int getMonth(); //返回当前对象的月 4.8 public int getDay(); //返回当前对象的日 4.9 public void set (int year, int month, int day); //设置年、月、日为指定的值year、month、day 4.10 public String toString();//以字符串形式返回当前对象的年月日,例如2008年08月08日,格式可自定义 4.11 public boolean equals(MyDate mydate);//当前对象与另一个对象比较,如果两个对象的年月日均相等,则返回true,反之返回false 5.编写TestMyDate.java,在main方法中对MyDate类的各个方法进行测试 6.按照编程规范为MyDate.java编写规范的代码 7.按照java doc API的要求,对代码编写规范的注释,然后利用javadoc.exe命令生成MyDate.java的API doc 8.撰写上机报告
<think>我们正在处理用户的问题:将Java中的毫秒换为时间格式的方法。根据用户需求,我们需要提供将毫秒换为时间格式的几种方法。参考引用中提供了一些信息:引用[1]展示了使用DateFormat将字符串解析为Date对象,然后格式化的方法。但用户的需求是毫秒换,所以我们可以直接使用毫秒值创建Date对象,然后用DateFormat格式化。引用[2]展示了使用Date构造函数,传入毫秒值来创建日期对象,然后输出。但直接输出Date对象会调用toString()方法,格式固定。用户需要的是自定义时间格式。引用[3]是关于Arrays类的,与当前问题无关。因此,我们将重点参考引用[1]和引用[2]提供的方法。常见的将毫秒换为时间格式的方法有以下几种:1.使用java.util.Date类,结合java.text.DateFormat或SimpleDateFormat进行格式化。2.使用java.util.Calendar类设置毫秒值,然后获取各个字段并格式化。3.使用Java8及以上的java.time包中的Instant、LocalDateTime等类(推荐)。由于用户没有指定Java版本,我们将提供传统方法和Java8及以上的方法。步骤:1.传统方法:使用Date和SimpleDateFormat2.传统方法:使用Calendar3.现代方法:使用Java8的java.timeAPI注意:用户要求的是将毫秒值(long类型,表示自1970年1月1日00:00:00GMT以来的毫秒数)换为时间格式。下面将分别介绍这三种方法。</think>### Java 毫秒换为时间格式的方法 在 Java 中将毫秒换为时间格式主要有以下三种常用方法: --- #### **方法 1:使用 `java.util.Date` 和 `SimpleDateFormat`** ```java import java.text.SimpleDateFormat; import java.util.Date; public class MillisToDate { public static void main(String[] args) { long millis = System.currentTimeMillis(); // 示例毫秒值 Date date = new Date(millis); // 创建Date对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = sdf.format(date); System.out.println(formattedDate); // 输出:2023-08-15 14:30:45 } } ``` - **说明**: `Date` 构造函数接收毫秒值参数(从 **1970-01-01 00:00:00 GMT** 起算)[^2],`SimpleDateFormat` 定义输出格式(如 `"yyyy-MM-dd"` 或 `"HH:mm:ss"`)。 --- #### **方法 2:使用 `java.util.Calendar`** ```java import java.util.Calendar; import java.text.SimpleDateFormat; public class MillisToCalendar { public static void main(String[] args) { long millis = 1672502400000L; // 2023-01-01 00:00:00 Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); // 设置毫秒值 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分"); System.out.println(sdf.format(calendar.getTime())); } } ``` - **说明**: 通过 `setTimeInMillis()` 设置毫秒值到 `Calendar` 对象,支持更灵活的日期操作(如加减天数)[^2]。 --- #### **方法 3:Java 8+ 的 `java.time` API(推荐)** ```java import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; public class MillisToTime { public static void main(String[] args) { long millis = 1672588800000L; // 2023-01-02 00:00:00 // 换为Instant -> LocalDateTime LocalDateTime dateTime = Instant.ofEpochMilli(millis) .atZone(ZoneId.systemDefault()) // 系统默认时区 .toLocalDateTime(); // 自定义格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm"); System.out.println(dateTime.format(formatter)); // 2023/01/02 00:00 } } ``` - **优势**: - 线程安全(`DateTimeFormatter` 不可变) - 更清晰的时区处理(`ZoneId`) - 支持纳秒级精度[^1]。 --- ### **关键注意事项** 1. **时区问题**: 上述方法默认使用系统时区。如需指定时区: ```java // SimpleDateFormat sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); // java.time .atZone(ZoneId.of("Asia/Shanghai")) ``` 2. **格式符号**: | 符号 | 含义 | 示例 | |------|----------|------------| | `yyyy` | 年 | 2023 | | `MM` | 月 | 08 | | `dd` | 日 | 15 | | `HH` | 小时(24h)| 14 | | `mm` | 分钟 | 30 | | `ss` | 秒 | 45 | 3. **性能**: Java 8 的 `java.time` API 性能更优,且避免传统 `Date/Calendar` 的线程安全问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值