Java中Date数据类型的数值转换方式

 更新时间:2023年07月15日 11:07:58   作者:bug  
这篇文章主要介绍了Java中Date数据类型的数值转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java中Date数据类型的数值转换

Java与MySQL交互的数据类型

java1.1时,从 MySQL 中查询出来的时间日期类型,都放在 java.util.Date类型里面了,但是这个类提供的时间操作函数太少,一般都需要转换成 java.util.Calendar 再去操作。

然而使用了java.util.Calendar 也不是很方便,一个很简单的想法,需要写很多代码才能实现。

于是java 提供与 MySQL方便交互的三种数据类型:java.sql.Date、java.sql.Time、java.sql.Timestamp,它们都是继承java.util.Date,适合用于跟数据库交互。

MySQL中的时间类型和对应的Java类型

MySQL中的时间类型对应的 Java 类型
Datejava.sql.Date
Yearjava.sql.Date
Timejava.sql.Time
Datetimejava.sql.Timestamp
Timestampjava.sql.Timestamp

Java 各种 Date 格式之间的转换

一、将 java.util.Date 格式转换成 String 格式

Date date = new Date();  // 获取当前系统时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  // 设置日期格式
String strTime = simpleDateFormat.format(date);  // 格式转换
System.out.println(strTime);  // 2019-06-10 17:32:05

二、将 java.util.Date 格式转换成 java.sql.Date 格式

Date date = new Date();
long longTime = date.getTime();  // 2019061017320511
java.sql.Date sDate = new java.sql.Date(longTime);
System.out.println(sDate);  // 2019-06-10

三、将 java.util.Date 格式转换成 Timestamp 格式

Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
System.out.println(timestamp);  // 2019-06-10 17:32:05.11

四、将 String 格式转换成 java.util.Date 格式

String strTime = "2019-06-10 17:32:05";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
    date = simpleDateFormat.parse(strTime);
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println(date);  // Mon Jun 10 17:32:05 GMT+08:00 2019

Java常用到时间类型转换,基础数据类型转换

一些平时常用得时间转换方法

package com.baidu.gongyi.soa.controller;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 
 * @author guoyunlong
 *
 */
public class test {
    public static void main(String[] args) throws ParseException {
        // 获取一天中早上6点
        DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        c.set(Calendar.HOUR_OF_DAY, 6);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        Date m6 = c.getTime();
        // 早上6点
        String format2 = format1.format(m6);
        System.out.println(format2);
        // 获取一天中20:00
        Calendar c1 = Calendar.getInstance();
        c1.set(Calendar.HOUR_OF_DAY, 20);
        c1.set(Calendar.MINUTE, 0);
        c1.set(Calendar.SECOND, 0);
        Date m20 = c1.getTime();
        // 晚上20点
        String format20 = format1.format(m20);
        System.err.println(format20);
///
        // 获取一个当前时间 Date类型变量date
        Date date = new Date();
        // 0. date转换为long类型
        long time = date.getTime();
        System.err.println(time);
        // 输出结果:1551152898496
        // 1. 设置日期格式
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateTime = df.format(date);
        // 输出
        System.err.println(dateTime);
        // 输出结果: 2019-02-26 11:45:15
        // 2. Date转换为DateTime
        long longTime = date.getTime();
        Timestamp timestamp = new Timestamp(longTime);
        System.err.println(timestamp);
        // 输出结果: 2019-02-26 11:45:15.922
        // 3. String转换为Date
        String strTime = "2019-02-26 11:45:15";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = sdf1.parse(strTime);
        System.err.println(date1);
        // 输出结果: Sun Sep 24 12:00:01 CST 2017
        // 4. Date转换为String
        Date date2 = new Date();
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String str1 = format.format(date2);
        System.err.println(str1);
        // 输出结果:2019-02-26
        // 5. String转化为java.sql.Date
        String str2 = "2019-02-26";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        java.sql.Date sDate = null;
        java.util.Date date3 = sdf2.parse(str2);
        sDate = new java.sql.Date(date3.getTime());
        System.err.println(sDate);
        // 输出结果: 2019-02-26
    }
}

基础数据类型转换

1>自动类型转换主要指小范围向大范围转换,在编译阶段自动完成。

2>强制类型转换主要指大范围向小范围转换,需要编写代码进行处理。

3>java为8中基本类型都提供了对应的包装类:

boolean对应Boolean、byte对应Byte、short对应Short、int对应Integer、long对应Long、char对应Character、float对应

Float、double对应Double,8种包装类都提供了一个parseXxx(String str)静态方法用于将字符串转换成基本类型。

1.转换成long型

Long/long num    =  Long.parseLong(String str);

或 

long l = Long.parseLong([String],[int radix]);  
long l = Long.valueOf("123").longValue(); 

2.Integer转换成int的方法 

Integer i = new Integer(10); 
int k = i.intValue();

即Integer.intValue();

3.int转换成Integer

int i = 10;
Integer it = new Integer(i);

4.int转换成String

int i = 10;
(1)String s = String.valueOf(i);
(2)String s = Ingeger.toString(i);
(3)String s = "" + i; 

5.String转换成Integer

String str = "10";
Integer it = Integer.valueOf(str); 

6.Integer转换成String

Integer it = new Integer(10); 
String str = it.toString(); 

7.String转换成BigDecimal 

BigDecimal bd = new BigDecimal(str);

8.String转换成double型 

double/Double num = Double.parseDouble(String str);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解析Java的Spring框架的BeanPostProcessor发布处理器

    解析Java的Spring框架的BeanPostProcessor发布处理器

    这篇文章主要介绍了Java的Spring框架的BeanPostProcessor发布处理器,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java编程学习的几个典型实例详解

    Java编程学习的几个典型实例详解

    这篇文章主要给大家介绍了Java编程学习的几个典型实例,其中包括模拟酒店房间管理系统、螺旋矩阵 例或者百鸡问题的变形等经典实例,具体来一起看详细内容吧,需要的朋友可以参考学习。
    2017-02-02
  • 详解MyBatis XML配置解析

    详解MyBatis XML配置解析

    这篇文章主要介绍了详解MyBatis XML配置解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring 使用注解方式进行事务管理配置方式

    Spring 使用注解方式进行事务管理配置方式

    本篇文章主要介绍了Spring 使用注解方式进行事务管理配置方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • SpringBoot3.X 整合 MinIO 存储原生方案

    SpringBoot3.X 整合 MinIO 存储原生方案

    本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了异常处理、参数校验、安全实践等内容,感兴趣的朋友一起看看吧
    2025-07-07
  • SonarQube安装、配置与使用教程图解

    SonarQube安装、配置与使用教程图解

    这篇文章主要介绍了SonarQube安装、配置与使用教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java的常见批量操作方法及注意事项

    Java的常见批量操作方法及注意事项

    Java作为一种强大的编程语言,提供了多种方法来有效地进行批量数据处理,这篇文章主要介绍了Java的常见批量操作方法及注意事项的相关资料,需要的朋友可以参考下
    2025-06-06
  • Java设计模式之策略模式详细解析

    Java设计模式之策略模式详细解析

    这篇文章主要介绍了Java设计模式之策略模式详细解析,策略模式中,定义算法族,分别封装起来,让他们之间可以相互转化,此模式让算法的变化独立于使用算法的客户,需要的朋友可以参考下
    2023-11-11
  • Java死锁_动力节点Java学院整理

    Java死锁_动力节点Java学院整理

    死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它
    2017-06-06
  • 排查Java进程内存占比过高的方法

    排查Java进程内存占比过高的方法

    某天下午运维反应集成环境的一个Java服务内存飙高,内存耗的太高了,会疑似内存泄漏,所以本文记一次排查Java进程内存占比过高的解决方法,需要的朋友可以参考下
    2023-10-10

最新评论