Java中的日期转换(String转Date、Date转String以及日期格式转换)

1. String转Date

//将String转换为Date
String dateString = "2020-02-12 20:55:09";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
	date = df.parse(dateString);
} catch (ParseException e) {
	e.printStackTrace();
}

注意: String和DateFormat样式需一样,不然无法解析

2. Date转String

//将Date转换为String
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);

3. 常见应用场景

在项目中,我们常常需要从数据库中查询出日期,然后转换为一定格式的日期进行数据处理,比如:我们需要统计指标的完成率,一类指标不止一条,但是只要上报一条就算这类指标已上报,我们需要把日期和指标的类别拼接起来进行去重。

	/**
     * 指标监控:查询分公司30天内上报的指标数量
     *
     * @return 各分公司30天内上报的指标数量的list集合
     */
    @Override
    public List<Integer> queryKpiTrendMonth() {
    	//从数据库查询分公司的id
        List<Integer> bcList = monitorStatisticsMapper.queryBcId();
        //从数据库查询30天内的指标
        List<KpiEntity> kpiEntityList = monitorStatisticsMapper.queryKpiTrendMonth();
        //创建一个数组存放各分公司30天内总的指标数量
        ArrayList<Integer> kpiCount = new ArrayList<>();
        for (int i = 0; i < bcList.size(); i++) {
            String bcId = bcList.get(i).toString();
            int count = 0;
            //利用set元素不可重复的特性去重,统计指标数量
            HashSet<String> set = new HashSet<>();
            for (int j = 0; j < kpiEntityList.size(); j++) {
                if (kpiEntityList.get(j).getBcId().equals(bcId)) {
                	//日期转换,String(包含时分秒的时间)→Date→String(不包含时分秒的时间)
                    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    Date date = null;
                    try {
                        date = df.parse(kpiEntityList.get(j).getKpiTime());
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    String dateString = sdf.format(date);
                    String s = dateString + kpiEntityList.get(j).getKpiId();
                    set.add(s);
                    count = set.size();
                }
            }
            kpiCount.add(count);
        }
        return kpiCount;
    }
### 回答1: 在 Java ,可以使用 SimpleDateFormat 类来将日期类型转换为字符串类型。 首先,需要定义一个 SimpleDateFormat 对象,并指定日期格式。例如: ``` SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ``` 然后,使用 SimpleDateFormat 对象的 format() 方法将日期转换为字符串。例如: ``` Date date = new Date(); String str = sdf.format(date); ``` 这样就可以将日期类型转换为字符串类型了。 注意:如果想要转换其他类型的日期,例如 java.sql.Date 类型,可以将其转换java.util.Date 类型后再使用上述方法进行转换。 例如: ``` java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime()); String str = sdf.format(sqlDate); ``` ### 回答2: 在Java,将Date日期类型转换String类型有两种常用的方法。 第一种方法是使用SimpleDateFormat类,它是java.text包的一个类。首先,我们需要创建一个SimpleDateFormat对象,并指定日期格式。例如,如果我们希望将日期转换为"yyyy-MM-dd"的格式,可以使用以下代码: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ``` 接下来,我们可以使用SimpleDateFormat对象的format方法将Date日期类型转换String类型: ```java Date date = new Date(); String dateString = sdf.format(date); ``` 在上面的例子,我们将当前的Date日期转换String类型,并将其赋值给了dateString变量。 第二种方法是使用DateTimeFormatter类,它是java.time.format包的一个类,从Java 8开始引入的日期时间API。与SimpleDateFormat类不同,DateTimeFormatter类是不可变且线程安全的。我们可以使用ofPattern方法创建一个格式化模式: ```java DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); ``` 然后,我们可以使用DateTimeFormatter对象的format方法将Date日期类型转换String类型: ```java Date date = new Date(); String dateString = dtf.format(date); ``` 在上面的例子,我们同样将当前的Date日期转换String类型,并将其赋值给了dateString变量。 无论是使用SimpleDateFormat类还是DateTimeFormatter类,都可以根据自己的需求选择适合的日期格式,然后通过format方法将Date日期类型转换String类型。 ### 回答3: Java可以使用SimpleDateFormat类将Date类型的日期转换String类型。 首先,需要创建一个SimpleDateFormat对象,并指定日期的格式。例如,要将日期格式化为"yyyy-MM-dd",可以使用以下代码: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 然后,可以使用format()方法将Date类型的日期转换String类型。例如,假设有一个Date类型的变量date,可以使用以下代码将其转换String类型: String strDate = sdf.format(date); 完整的示例代码如下: import java.text.SimpleDateFormat; import java.util.Date; public class DateToStringExample { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String strDate = sdf.format(date); System.out.println("Date: " + date); System.out.println("String: " + strDate); } } 以上代码将会输出当前日期Date类型和转换后的String类型,例如: Date: Mon Jul 19 13:45:25 CST 2021 String: 2021-07-19 这样,就成功将Date类型的日期转换String类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值