迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便