Java实现时间与字符串互相转换的方法详解

414

在Java编程中,时间和字符串的互相转换是常见操作。Java提供了丰富的API,如SimpleDateFormat和java.time包,使得这些转换变得简单高效。本文将通过实例,详细讲解如何在Java中实现时间与字符串的互相转换。

java.webp

一、日期格式化为字符串

在Java中,可以使用java.time包中的DateTimeFormatter类将日期格式化为字符串。以下是使用DateTimeFormatter的示例:

(一)使用预定义格式

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateFormatExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
        String formattedDate = now.format(formatter);
        System.out.println("ISO格式日期时间: " + formattedDate);
    }
}

(二)自定义格式

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class CustomFormatExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDate = now.format(formatter);
        System.out.println("自定义格式日期时间: " + formattedDate);
    }
}

二、字符串解析为日期

将字符串解析为日期时,需要确保字符串的格式与DateTimeFormatter指定的格式一致。以下是解析字符串为日期的示例:

(一)解析ISO格式字符串

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class ParseISODateExample {
    public static void main(String[] args) {
        String isoDate = "2023-10-11T12:34:56";
        DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
        LocalDateTime date = LocalDateTime.parse(isoDate, formatter);
        System.out.println("解析后的日期时间: " + date);
    }
}

(二)解析自定义格式字符串

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class ParseCustomDateExample {
    public static void main(String[] args) {
        String customDate = "2023-10-11 12:34:56";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime date = LocalDateTime.parse(customDate, formatter);
        System.out.println("解析后的日期时间: " + date);
    }
}

三、处理不同时区的日期

在处理不同时区的日期时,可以使用ZonedDateTime类。以下是将日期转换为不同时区的示例:

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class TimeZoneExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        ZoneId zoneId = ZoneId.of("America/New_York");
        ZonedDateTime zonedDateTime = ZonedDateTime.of(now, zoneId);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
        String formattedDate = zonedDateTime.format(formatter);
        System.out.println("纽约时区日期时间: " + formattedDate);
    }
}

四、总结

Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期和字符串之间进行转换。

五、方法补充

java 时间转字符串

要将Java中的时间转换为字符串,可以使用java.util.Date类或java.time.LocalDateTime类来表示时间,并使用java.text.SimpleDateFormat类来格式化时间。

以下是使用java.util.Date和java.text.SimpleDateFormat的示例代码:

import java.util.Date;
import java.text.SimpleDateFormat;
 
public class Main {
    public static void main(String[] args) {
        Date currentDate = new Date();
 
        // 指定日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
        // 将Date转换为字符串
        String dateString = dateFormat.format(currentDate);
 
        // 打印结果
        System.out.println(dateString);
    }
}

以下是使用java.time.LocalDateTime和java.time.format.DateTimeFormatter的示例代码:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 
public class Main {
    public static void main(String[] args) {
        LocalDateTime currentDateTime = LocalDateTime.now();
 
        // 指定日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
        // 将LocalDateTime转换为字符串
        String dateTimeString = currentDateTime.format(formatter);
 
        // 打印结果
        System.out.println(dateTimeString);
    }
}

以上示例中的日期格式为"yyyy-MM-dd HH:mm:ss",你可以根据需要自定义日期格式。

java 时间与字符串之间的转换

1. long字符串转换成yyyy-MM-dd HH:mm:ss格式输出

import java.text.SimpleDateFormat;  
import java.util.Date;  
//将long字符串转换成格式时间输出  
public class LongToString {  
public static void main(String argsp[]){  
    String time="1256006105375";  
  
    Date date=new Date(Long.parseLong(time));  
    SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    time=formatter.format(date);  
    System.out.println(time);  
}  
}

2. 字符串转换成时间

import java.text.SimpleDateFormat;  
import java.util.Date;  
  
import ognl.ParseException;  
  
public class StringToDate {  
public static void main(String argsp[]) throws Exception{  
    String time="2010-11-20 11:10:10";  
  
    Date date=null;  
    SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    date=formatter.parse(time);  
    System.out.println(date);  
}  
}

3. 取得当前系统时间,返回yyyy-MM-dd HH:mm:ss字符串

import java.text.SimpleDateFormat;  
import java.util.Date;  
  
public class StringToDate {  
public static void main(String argsp[]) throws Exception{  
      
    Date date=new Date();  
    SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    String time=formatter.format(date);  
    System.out.println(time);  
}  
}

4. 取得当前系统时间,返回 HH:mm:ss字符串

import java.text.SimpleDateFormat;  
import java.util.Date;  
  
public class StringToDate {  
public static void main(String argsp[]) throws Exception{  
      
    Date date=new Date();  
    SimpleDateFormat formatter=new SimpleDateFormat("HH:mm:ss");  
    String time=formatter.format(date);  
    System.out.println(time);  
}  
}

5.将20101125102503转换成2010-11-25 10:25:03输出

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDate {  
public static void main(String argsp[]) throws Exception{  
    String time="20101125102503";  
    SimpleDateFormat formatter1=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");  
    SimpleDateFormat formatter2=new SimpleDateFormat("yyyyHHddHHmmss");  
    time=formatter1.format(formatter2.parse(time));  
    System.out.println(time);  
}  
}

总结

本文通过实例,详细介绍了Java中时间与字符串互相转换的方法。从SimpleDateFormat到java.time包的使用,每一步都进行了详细讲解。掌握这些方法将为您的Java编程带来极大便利和效率提升。希望本文对您的编程之旅有所帮助。

Java 时间 字符串
THE END
蜜芽
故事不长,也不难讲,四字概括,毫无意义。

相关推荐

Java日志管理框架:Log4j、SLF4J、Logback对比与使用方法详解
java主流日志框架中,Log4j 1.x作为早期标准,Log4j 2.x通过重构实现性能飞跃,Logback作为Log4j的继承者以原生SLF4J支持成为主流选择,而SLF4J作为日志门面,通过抽象层实现...
2025-09-15 编程技术
524

新站多久能被收录?各大搜索引擎网站收录时间盘点
不同搜索引擎对新站的收录周期存在显著差异,且受网站质量、内容策略、技术架构等多重因素影响。本文站长工具网基于权威来源信息,系统梳理Google、百度、Bing、Yahoo、Yande...
2025-09-15 站长之家
497

Java 与 MySQL 性能优化:MySQL全文检索查询优化实践
本文聚焦Java与MySQL协同环境下的全文检索优化实践,从索引策略、查询调优、参数配置到Java层优化,深入解析如何释放全文检索的潜力,为高并发、大数据量场景提供稳定高效的搜...
2025-09-13 编程技术
506

JavaScript 中 instanceof 的作用及使用方法详解
在 JavaScript 的类型检查体系中,instanceof 是一个重要的操作符,用于判断一个对象是否属于某个构造函数的实例或其原型链上的类型。本文ZHANID工具网将系统讲解 instanceof...
2025-09-11 编程技术
497

Java与MySQL数据库连接实战:JDBC使用教程
JDBC(Java Database Connectivity)作为Java标准API,为开发者提供了统一的数据访问接口,使得Java程序能够无缝连接各类关系型数据库。本文ZHANID工具网将以MySQL数据库为例...
2025-09-11 编程技术
495

JavaScript出现“undefined is not a function”错误的解决方法
在JavaScript开发中,TypeError: undefined is not a function 是最常见的运行时错误之一,通常表示代码尝试调用一个未定义(undefined)的值作为函数。本文ZHANID工具网将从...
2025-09-10 编程技术
511