java时间加减的问题

本文介绍了一个简单的Java程序,用于演示如何使用Java中的日期类进行基本的日期格式化和日期加减操作。通过实例展示了如何获取当前日期、设置日期格式、打印日期及对日期进行加一年的操作。

package com.zwj.struts.action;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import java.sql.Timestamp;

import com.lowagie.text.pdf.codec.postscript.ParseException;

/**
 * 专用小测试
 */
public class Mytest {

 private static Calendar time;

 /**
  * @param args
  */
 /**
  * @param args
  */
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  try {
   Date todayDate = new Date();
   Date tomorrowDate = new Date();
   todayDate.getTime();
   SimpleDateFormat sdf = new SimpleDateFormat("", Locale.CHINESE);
   sdf.applyPattern("yyyy年MM月dd日_HH点mm分ss秒");

   String timeStr = sdf.format(todayDate);
   System.out.print("Today   time   is:" + timeStr + "\r\n");
   todayDate.setYear(todayDate.getYear() + 1);
   tomorrowDate = todayDate;
   timeStr = sdf.format(tomorrowDate);
   System.out.print("Tomorrow   time   is:" + timeStr);
  } catch (Exception e) {
   e.printStackTrace();

  }

 }
}

Java中对时间进行加减操作,可以使用`Calendar`类来实现。`Calendar`类提供了`add`方法,允许对时间的各个部分(如年、月、日、时、分、秒)进行加减操作。下面是一个详细的示例说明如何使用`Calendar`类来进行时间加减操作。 首先,创建一个`SimpleDateFormat`对象用于格式化日期时间,然后获取当前时间并将其设置到`Calendar`实例中。接着,调用`add`方法对时间进行加减。例如,若要获取当前时间的一小时前的时间,可以这样做: ```java SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR, -1); // 减去1小时 Date time = calendar.getTime(); String format = simpleDateFormat.format(time); System.out.println("---------------------" + format); ``` 同样地,如果需要对分钟或秒进行加减,只需更改`add`方法中的第二个参数以及传递给`add`方法的字段类型,比如`Calendar.MINUTE`或`Calendar.SECOND`[^2]。 另一种方法是直接通过`Date`对象和毫秒数来计算时间差。这种方法利用了`System.currentTimeMillis()`获取当前时间的毫秒数,然后加上或减去相应的毫秒数来得到新的时间点。例如,为了得到10分钟后的时间,可以这样做: ```java long currentTime = System.currentTimeMillis(); long requiredTime = currentTime + 10 * 60 * 1000; // 10分钟后 String formatTime2 = sdf.format(requiredTime); System.out.println("date2:" + formatTime2); ``` 这里,`sdf`是一个`SimpleDateFormat`对象,用于格式化输出的时间字符串[^3]。 对于更复杂的日期时间处理,还可以考虑使用Java 8引入的新日期时间API,如`LocalDateTime`和`Duration`类,它们提供了更加直观和易于使用的接口来进行日期时间的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值