System.currentTimeMillis()与日期之间的相互转换

本文介绍如何使用Java中的SimpleDateFormat进行日期与毫秒值之间的相互转换,并提供具体示例代码。此外,还讨论了在转换过程中可能出现的时间精度问题。

System.currentTimeMillis()与日期 之间是可以相互转换的,大多数Android开发者都知道 通过

SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = dateformat.format(System.currentTimeMillis());

 

可以获取如“ 2016-09-02 23:02:17 ”这样的一个字符串,但是反过来呢?如果给我们一个“ 2016-09-02 23:02:17 ”字符串,我们能否得到当前日期对应的毫秒值呢? 答案是肯定的。

SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
    long time = dateformat.parse("2016-09-02 23:02:17").getTime();
    System.out.println(time);
} catch (ParseException e) {
    e.printStackTrace();
}

 

输出:1472828537000; 
由此可见,毫秒值与日期之间是可以互转的。

总结:测试时候可能会出现当前获取的毫秒值转换为日期后,再转为毫秒值时候 与前者不一致,这个是因为获取的是毫秒值,而转换为日期后是以秒为单位了,所以转换后才会出现这种情况。 如果想要解决那么就得在时间格式化的时候写成 SimpleDateFormat dateformat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSS”);

package day02; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Calendar; import java.util.Date; public class DateDemo { public static void main(String[] args) throws ParseException { System.out.println(System.currentTimeMillis()); Date date = new Date(); System.out.println(date.getTime()); DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strDate = df.format(date); System.out.println("这是日期字符串之后的格式:" + strDate); String str = "2025-09-05 08:09:20"; Date date1 = df.parse(str); System.out.println("这是字符串日期之后的格式:" + date1); Calendar calendar = Calendar.getInstance(); System.out.println("这是Calendar的getTime()方法:" + calendar.getTime()); System.out.println("获取年份:" + calendar.get(Calendar.YEAR)); System.out.println("获取月份:" + calendar.get(Calendar.MONTH)); LocalDate localDate = LocalDate.now(); System.out.println("localDate:" + localDate); LocalTime localTime = LocalTime.now(); System.out.println("localTime:" + localTime); LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("localDateTime:" + localDateTime); // 获取当前星期几 int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; String weekDate = ""; switch (week) { case 0: weekDate = "星期日"; break; case 1: weekDate = "星期一"; break; case 2: weekDate = "星期二"; break; case 3: weekDate = "星期三"; break; case 4: weekDate = "星期四"; break; case 5: weekDate = "星期五"; break; case 6: weekDate = "星期六"; break; } System.out.println("今天是 " + weekDate); } } 分析一下这段代码
最新发布
09-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值