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);

总结

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

相关文章

最新评论