Date类型,long类型,String类型表现形式的转换

本文介绍了如何在Java中实现java.util.Date类型与long类型之间的相互转换,并提供了将特定格式的字符串转换为Date类型的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、java.util.Date类型转换成long类型
java.util.Date dt = new Date();
System.out.println(dt.toString()); //java.util.Date的含义
long lSysTime1 = dt.getTime() / 1000; //得到秒数,Date类型的getTime()返回毫秒数

2、由long类型转换成Date类型
SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
//前面的lSysTime是秒数,先乘1000得到毫秒数,再转为java.util.Date类型
java.util.Date dt = new Date(lSysTime1 * 1000);
String sDateTime = sdf.format(dt); //得到精确到秒的表示:08/31/2006 21:08:00
System.out.println(sDateTime);

3、"08/31/2006 21:08:00"格式的String转换java.util.Date类型
String sDt = "08/31/2006 21:08:00";
SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date dt2 = sdf.parse(sDt);
//继续转换得到秒数的long型
long lTime = dt2.getTime() / 1000;


还可以继续将描述转换成天数。且将结果强制转换成int类型。

int days = (int) TimeUnit.MILLISECONDS.toDays(time);
### Java 数据类型知识点详解 Java 是一种强类型语言,这意味着所有的变量都必须有明确的数据类型。以下是关于 Java 数据类型的详细知识点: #### 1. 基本数据类型 Java 中共有 **8 种基本数据类型**,每种都有固定的大小和行为[^4]。 - **整数类型** - `byte`:占用 1 字节 (8 位),范围为 `-128 ~ 127`。 - `short`:占用 2 字节 (16 位),范围为 `-32,768 ~ 32,767`。 - `int`:占用 4 字节 (32 位),范围为 `-2^31 ~ 2^31-1`。 - `long`:占用 8 字节 (64 位),范围为 `-2^63 ~ 2^63-1`。 - **浮点类型** - `float`:单精度浮点数,占用 4 字节 (32 位)。默认情况下,小数会被视为 `double` 类型,因此定义 `float` 变量时需显式加后缀 `f` 或 `F`[^1]。 ```java float f = 3.14f; ``` - `double`:双精度浮点数,默认类型,占用 8 字节 (64 位)[^4]。 - **字符类型** - `char`:用于表示 Unicode 字符,占用 2 字节 (16 位)。它是无符号的,取值范围为 `'\u0000' ~ '\uffff'` (即 `0 ~ 65,535`)。 - **布尔类型** - `boolean`:仅能存储两个值之一——`true` 或 `false`。它并不对应任何数值,在内存中的实际表现形式未被明确定义[^4]。 #### 2. 隐式类型提升与强制类型转换 当不同数据类型参与运算时,可能会发生隐式类型提升或强制类型转换: - 所有小于 `int` 的整数类型 (`byte`, `short`, 和 `char`) 在运算前都会被提升为 `int`。 - 如果涉及浮点数运算,则所有整数都将转化为对应的浮点类型(如 `float` 或 `double`)。最终结果也会是更高精度的浮点类型[^1]。 - 强制类型转换通过 `(目标类型)` 实现,但可能导致数据丢失或溢出风险。例如: ```java double d = 9.7; int i = (int)d; // 结果为 9,小数部分被截断 ``` #### 3. 包装类 为了支持对象化编程模型,Java 提供了针对每种基本数据类型的包装类[^4]: | 基本类型 | 对应包装类 | |----------|------------| | byte | Byte | | short | Short | | int | Integer | | long | Long | | char | Character | | boolean | Boolean | | float | Float | | double | Double | 这些包装类允许将原始数据封装成对象,并提供了许多实用的方法来处理它们。 #### 4. 特殊数据类型 —— Date `Date` 类位于 `java.util` 包中,用来表示特定的时间点。需要注意的是,尽管它可以精确到毫秒级别,但在某些场景下可能无法满足高精度需求,比如纳秒级别的时间戳[^3]。此外,由于历史原因,`Date` 存在一些设计上的缺陷,推荐使用更新后的 API 如 `LocalDateTime` 来替代旧版功能[^2]。 --- ### 示例代码展示 下面是一些常见的例子演示如何正确运用各种数据类型: ```java // 整数类型示例 public class IntExample { public static void main(String[] args){ byte b = 100; short s = 30000; int i = 1_000_000; // 数字间可加入下划线提高可读性 long l = 123456789L; System.out.println(b); System.out.println(s); System.out.println(i); System.out.println(l); } } // 浮点类型示例 public class FloatDoubleExample{ public static void main(String []args){ float pi_f = 3.14f; double pi_d = Math.PI; System.out.println(pi_f); System.out.println(pi_d); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值