迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中转换字符串到 DateTime 对象

作者:迹忆客 最近更新:2023/08/12 浏览次数:

本文将介绍我们如何使用不同的方法和例子将给定的字符串转换为一个 DateTime 对象。


在 Java 中使用 SimpleDateFormatjava.util.Date 把一个日期字符串转换为 DateTime 对象

SimpleDateFormat 是一个用于以本地化敏感方式解析和格式化日期的类。它允许我们将一个字符串转换为 DateTime,并将一个 DateTime 对象转换为一个字符串。

在下面的代码中,我们使用了一个字符串 date_time,通过调用 SimpleDateFormat 实例 dateParser 上的 parse 方法来解析。我们希望字符串 date_time 被解析的格式是在 SimpleDateFormat 构造函数中指定的。

我们还创建了一个新的 SimpleDateFormat 类的实例,并使用不同的格式。解析后的 date 将被格式化并打印出来。

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

public class StringToDateTime {
    public static void main(String [] args){
      
        String date_time = "11/27/2020 05:35:00";
        SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
        {
            try {
                Date date = dateParser.parse(date_time);
                System.out.println(date);

                SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yy");
                System.out.println(dateFormatter.format(date));

            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
}

输出:

Fri Nov 27 05:35:00 UTC 2020
11/27/20

使用 Java 8 日期和时间库将日期字符串转换为日期时间格式

LocaleDate 类表示不含时间的 ISO 格式的日期。DateTimeFormatter 类用于解析不同格式的日期。我们可以通过调用 DateTimeFormatter 上的 ofPattern() 方法提供自定义模式。

LocaleDate 有一个 parse() 方法,它将自定义的文本字符串和特定的格式器 inputFormat 进行解析,得到一个 LocalDate 实例。获得的 LocaleDate 实例 date 然后被格式化并打印为输出。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String [] args){
      
        DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
     
        LocalDate date = LocalDate.parse("11/27/2020 05:35:00", inputFormat);

        DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
        System.out.println(date.format(outputFormat));
    }
}

输出:

11/27/2020

使用 joda-time 将日期字符串转换为日期时间格式

joda-time 是一个标准的 DateTime 库,它提供了丰富的方法来执行日期和时间计算。下面给出了包含该库功能的 maven 依赖关系。

 <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.8</version>
    </dependency>

DateTimeFormatter 可以解析日期和时间的自定义表示。

我们用自定义模式创建一个 formatter 实例 datetimeformat。在 formatter 实例上调用 parseDateTime,使用自定义字符串 dateTime 给出一个 DateTime 对象。

在这里,我们创建了一个新的 DateTimeFormatter 实例 dateTimeFormatOut,使用不同的自定义模式。print() 方法在新的实例上被调用,它以新的格式打印 DateTime 对象 joda_time

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class StringToDateTime {
    public static void main(String [] args){
      
        String dateTime = "11/27/2020 05:35:00";
        DateTimeFormatter datetimeformat = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");

        DateTime joda_time = datetimeformat.parseDateTime(dateTime);
        System.out.println("joda_time : "+joda_time);
        
        DateTimeFormatter dateTimeFormatOut = DateTimeFormat.forPattern("MM/dd/yyyy");
        System.out.println("date time format out:  "+dateTimeFormatOut.print(joda_time));
    }
}

输出:

joda_time : 2020-11-27T05:35:00.000+05:30
date time format out:  11/27/2020

在 Java 中使用 Timestamp 构造函数将字符串日期 Date 转换为时间戳 Timestamp

在这里,我们使用 Timestamp 构造函数来获取一个时间戳 Timestamp 对象。首先,我们使用 SimpleDateFormat 类设置 date 的格式,然后使用 parser() 方法得到日期对象,然后使用 geteTime() 方法将时间与日期相加,得到一个 timestamp 的结果。请看下面的例子。

import java.util.Date;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class SimpleTesting {

    public static void main(String[] args) {
        try {
              DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
              Date date = dateFormat.parse("12/10/1990");
              Timestamp timeStampDate = new Timestamp(date.getTime());
              System.out.println(timeStampDate);
            } catch (ParseException e) {
              System.out.println(e);
            }
    }
}

输出:

 1990-10-12 00:00:00.0

在 Java 中用 LocalDate 将日期字符串转换为时间戳

在 Java 8 中,它增加了一个新的 java.time 包,其中包含几个处理日期和时间的类。在这里,我们使用该包中的 LocalDate 类。我们使用 LocalDate 类的 parse() 方法从日期字符串中得到 LocalDate 对象,然后使用 atTime() 方法得到 LocalDateTime 对象,返回一个带时间的日期。now() 用于获取系统的当前时间。

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class SimpleTesting {

    public static void main(String[] args) {
              LocalDate date = LocalDate.parse("2025-11-25");
              System.out.println(date);
              LocalDateTime dateTime = date.atTime(LocalTime.now());
              System.out.println(dateTime);
              
    }
}

输出:

2025-11-25
2025-11-25T09:44:56.814795

在 Java 中使用 atStartOfDay() 方法将字符串日期转换为时间戳

LocalDate 类中的 atStartOfDay() 方法也用于获取 LocalDateTime 对象。该方法在一天开始时将时间添加到日期中,并返回一个日期-时间而不是一个简单的日期。请看下面的例子。

import java.time.LocalDate;
import java.time.LocalDateTime;

public class SimpleTesting {

    public static void main(String[] args) {
        String strDate = "2019-10-20";
        LocalDate date = LocalDate.parse(strDate);
        LocalDateTime dateTime = date.atStartOfDay();
        System.out.println(dateTime);
    }
}

输出:

2019-10-20T00:00

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中复制文件

发布时间:2023/08/12 浏览次数:59 分类:Java

本文介绍如何在 Java 中将文件从一个位置复制到另一个位置。

Java 中的文件路径

发布时间:2023/08/12 浏览次数:162 分类:Java

本文讨论了在 Java 中指定文件路径的方法。

.java 和 .class 之间的区别

发布时间:2023/08/12 浏览次数:199 分类:Java

本文讨论 Java 中 .java 和 .class 文件扩展名之间的区别以及简单的 Java 程序如何运行。

在 Java 中将错误日志写入文件

发布时间:2023/08/12 浏览次数:196 分类:Java

在 Java 中保存错误日志的最直接方法是将异常写入文件中。我们可以使用 try 和 catch 块将错误写入使用 FileWriter、BufferedWriter 和 PrintWriter 的文本文件。本文将介绍如何在 Java 中保存错误日志。

从 Java 资源中读取文件

发布时间:2023/08/12 浏览次数:200 分类:Java

本文将展示如何使用 Java 编程语言从资源中读取文件。你只需要一个源文件路径。在 Java 中如何从资源中读取文件

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便