java获取前几天的时间

本文介绍了一个简单的Java程序,用于获取并打印出昨天和前天的具体日期。通过使用java.util.Calendar类和java.text.SimpleDateFormat类,程序能够准确地计算出指定格式的日期字符串。

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

package com.credlink.test;

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

/**
 * @author: create by lz
 * @copyright: cl
 * @date:2020/4/9 16:26
 */
public class Main {
    public static void main(String args[]) {

        System.out.println(getYesterday());
        System.out.println(getYesterday());
    }


    public static String getYesterday() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -1);
        date = calendar.getTime();
        String yesterday = sdf.format(date);
        return yesterday;
    }

    public static String getTwoday() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, - 2);
        date = calendar.getTime();
        String twoDay = sdf.format(date);
        return twoDay;
    }
}

输出

2020-04-08
2020-04-08

 

### Java 获取指定数之时间戳或日期字符串 为了获取几天时间,在Java中可以使用`Calendar`类来操作时间。通过设置当时间为基准,减去所需的数,再转换成所需格式返回。 对于获取几天时间戳: ```java import java.util.Calendar; public class TimeExample { public static long getTimestampDaysBefore(int days) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -days); return calendar.getTimeInMillis(); // 获得对应的时间戳[^1] } } ``` 如果目标是得到日期字符串,则可以在上述基础上进一步处理,利用`SimpleDateFormat`来进行格式化输出: ```java import java.text.SimpleDateFormat; import java.util.Calendar; public class DateStringExample { public static String getDateStrDaysBefore(int days) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -days); return sdf.format(calendar.getTime()); } } ``` 另外一种方式是采用`LocalDateTime`配合`Duration`或者`Period`实现更现代化的操作模式,这里给出基于`LocalDateTime`的例子: ```java import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; public class ModernDateExample { public static String getFormattedDateNDaysAgo(int n) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now().minusDays(n); return now.format(formatter); } public static long getTimeMillisNDaysAgo(int n){ return LocalDateTime.now() .minusDays(n) .atZone(ZoneId.systemDefault()) .toInstant() .toEpochMilli(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值