以毫秒获取当前时间system.currentTimeMillis()

本文介绍了一种使用Java实现的计时器类StopWatch,用于测量代码段的执行时间,并通过Time类将毫秒值转换为小时、分钟和秒的形式。StopWatch类通过记录开始和结束时间来计算时间差,而Time类则负责将毫秒值解析成更易读的时间格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以毫秒获取当前时间system.currentTimeMillis()

public class Demo8_1 {
	public static void main(String[] args) {
		//System.currentTimeMillis();
		StopWatch watch=new StopWatch();//此时创建对象调用构造函数已经记录了时间
		//System.out.println(watch.getElapsedTime());//-1544963947421,endTime默认为0
		watch.stop();
		watch.start();
		for(int i=0;i<100000000;i++);//计算此段代码运行的时间
		watch.stop();
		System.out.println(watch.getElapsedTime());
	}
}
class StopWatch{
	private long startTime;
	private long endTime;
	//private long time=100000;
	StopWatch(){
		//startTime=System.currentTimeMillis();
		start();
	}
	public void start(){
		startTime=System.currentTimeMillis();
	}
	public void stop(){
		endTime=System.currentTimeMillis();
		//startTime=time;
	}
	public long getElapsedTime(){
		return endTime-startTime;
	}
	public long getStartTime() {
		return startTime;
	}
	public long getEndTime() {
		return endTime;
	}
}

public class Demo8_4 {
	public static void main(String[] args) {
		Time time1=new Time();
		System.out.println(time1.getHour());
		System.out.println(time1.getMinute());
		System.out.println(time1.getSecond());
		Time time2=new Time(1000000);
		System.out.println(time2.getHour());
		System.out.println(time2.getMinute());
		System.out.println(time2.getSecond());
		time2.setTime(System.currentTimeMillis());//10000+从1970年1月1日
		System.out.println(time2.getHour());
		System.out.println(time2.getMinute());
		System.out.println(time2.getSecond());
		Time time3=new Time(10,10,10);
		time3.setTime(1000);//在10小时10分钟10 秒的基础上加上1000毫秒
		System.out.println(time3.getHour());
		System.out.println(time3.getMinute());
		System.out.println(time3.getSecond());//结果应为10小时10分钟11秒	
	}
}
class Time{
	private long hour;
	private long minute;
	private long second;
	private long totalMillis;
	Time(){//以当前时间计算小时,分钟,秒
		totalMillis=System.currentTimeMillis();
		format(totalMillis);	
	}
	public Time(long millis){//从传入的毫秒值进行计算
		//format(millis);X
		totalMillis=millis;
		format(totalMillis);
	}
	public Time(long hour,long minute,long second){
		//以传入的小时,分钟,秒进行计算
		this.hour=hour;
		this.minute=minute;
		this.second=second;
		totalMillis=second*1000+minute*60*1000+hour*60*60*1000;
	}
	public void setTime(long elapseTime){
		//当前时间加上传入的时间,表示总共时间,用总共时间进行计算
		totalMillis=totalMillis+elapseTime;
		format(totalMillis);
	}
	//将毫秒值转化为小时,分钟,秒
	public void format(long totalMillis){
		hour=totalMillis/1000/60/60;
		minute=totalMillis/1000/60-hour*60;
		second=totalMillis/1000-hour*60*60-minute*60;	
	}
	public long getHour(){
		return hour;
	}
	public long getMinute(){
		return minute;
	}
	public long getSecond(){
		return second;
	}
}

### 将 `System.currentTimeMillis()` 转换为 `yyyy-MM-dd` 格式的解决方案 在 Java 中,可以通过 `SimpleDateFormat` 类将时间戳转换为指定格式的日期字符串。以下是详细的实现方式: #### 实现代码 ```java import java.text.SimpleDateFormat; import java.util.Date; public class TimeStampToDate { public static void main(String[] args) { long currentTimeMillis = System.currentTimeMillis(); // 获取当前时间戳 // 定义日期格式为 yyyy-MM-dd SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 将时间戳转换为 Date 对象 Date date = new Date(currentTimeMillis); // 使用 SimpleDateFormat 进行格式化 String formattedDate = dateFormat.format(date); // 输出结果 System.out.println(formattedDate); // 打印 yyyy-MM-dd 格式的结果 } } ``` #### 关键点解析 1. **获取当前时间戳** 使用 `System.currentTimeMillis()` 方法可获得自 1970 年 1 月 1 日 00:00:00 GMT 开始的毫秒数[^1]。 2. **定义日期格式** 创建一个 `SimpleDateFormat` 对象并设置目标格式 `"yyyy-MM-dd"`,这表示仅保留年份、月份和日期部分[^1]。 3. **时间戳转 Date 对象** 构造一个新的 `Date` 对象时传入时间戳即可将其转换为标准日期对象[^2]。 4. **格式化输出** 借助 `SimpleDateFormat` 的 `format` 方法将 `Date` 对象转换为目标格式的字符串。 需要注意的是,在某些情况下,由于精度丢失可能导致两次转换后的值略有差异,但这通常不会影响到日期级别的显示[^4]。 --- #### 注意事项 - 如果需要处理不同的时区,则可以在创建 `SimpleDateFormat` 时通过其构造函数指定对应的时区。 - 当前示例默认采用 JVM 的本地时区进行格式化操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值