Kimi K3引发华尔街震动:算力转化与商业化双突破,重塑行业估值逻辑?
2026/7/23 23:23:38
Date是Java最早的日期时间类,位于java.util包中。虽然功能相对简单,但在很多遗留系统中仍在广泛使用。
importjava.util.Date;importjava.text.SimpleDateFormat;// 创建和赋值DatecurrentDate=newDate();// 当前时间DatespecificDate=newDate(1234567890000L);// 指定毫秒数// 打印值System.out.println("当前时间: "+currentDate);// 输出示例: 当前时间: Mon Dec 25 14:30:45 CST 2023System.out.println("指定时间: "+specificDate);// 输出示例: 指定时间: Fri Feb 13 20:31:30 CST 2009// Date转字符串 (yyyy-MM-dd HH:mm:ss)SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");StringdateString=sdf.format(currentDate);System.out.println("Date转字符串: "+dateString);// 输出示例: Date转字符串: 2023-12-25 14:30:45// 字符串转Date (yyyy-MM-dd HH:mm:ss)try{StringtimeStr="2023-12-25 14:30:45";DateparsedDate=sdf.parse(timeStr);System.out.println("字符串转Date: "+parsedDate);// 输出示例: 字符串转Date: Mon Dec 25 14:30:45 CST 2023}catch(Exceptione){e.printStackTrace();}Calendar是Date的改进版本,提供了更丰富的日期操作方法,可以方便地获取和设置日期的各个组成部分。
importjava.util.Calendar;importjava.text.SimpleDateFormat;// 创建和赋值Calendarcalendar=Calendar.getInstance();calendar.set(2023,Calendar.DECEMBER,25,14,30,45);// 打印值System.out.println("Calendar时间: "+calendar.getTime());// 输出示例: Calendar时间: Mon Dec 25 14:30:45 CST 2023// Calendar转字符串 (yyyy-MM-dd HH:mm:ss)SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");StringcalendarString=sdf.format(calendar.getTime());System.out.println("Calendar转字符串: "+calendarString);// 输出示例: Calendar转字符串: 2023-12-25 14:30:45// 字符串转Calendar (yyyy-MM-dd HH:mm:ss)try{StringtimeStr="2023-12-25 14:30:45";CalendarparsedCalendar=Calendar.getInstance();parsedCalendar.setTime(sdf.parse(timeStr));System.out.println("字符串转Calendar: "+parsedCalendar.getTime());// 输出示例: 字符串转Calendar: Mon Dec 25 14:30:45 CST 2023}catch(Exceptione){e.printStackTrace();}LocalDateTime是Java 8引入的新时间API的一部分,位于java.time包中。它是不可变的、线程安全的,并提供了丰富的方法来进行日期时间操作。
importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;// 创建和赋值LocalDateTimecurrentDateTime=LocalDateTime.now();// 当前时间LocalDateTimespecificDateTime=LocalDateTime.of(2023,12,25,14,30,45);// 打印值System.out.println("当前时间: "+currentDateTime);// 输出示例: 当前时间: 2023-12-25T14:30:45.123System.out.println("指定时间: "+specificDateTime);// 输出示例: 指定时间: 2023-12-25T14:30:45// LocalDateTime转字符串 (yyyy-MM-dd HH:mm:ss)DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");StringdateTimeString=currentDateTime.format(formatter);System.out.println("LocalDateTime转字符串: "+dateTimeString);// 输出示例: LocalDateTime转字符串: 2023-12-25 14:30:45// 字符串转LocalDateTime (yyyy-MM-dd HH:mm:ss)StringtimeStr="2023-12-25 14:30:45";LocalDateTimeparsedDateTime=LocalDateTime.parse(timeStr,formatter);System.out.println("字符串转LocalDateTime: "+parsedDateTime);// 输出示例: 字符串转LocalDateTime: 2023-12-25T14:30:45LocalDate表示不带时间的日期,只包含年、月、日信息。
importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;// 创建和赋值LocalDatecurrentDate=LocalDate.now();// 今天LocalDatespecificDate=LocalDate.of(2023,12,25);// 指定日期// 打印值System.out.println("今天: "+currentDate);// 输出示例: 今天: 2023-12-25System.out.println("指定日期: "+specificDate);// 输出示例: 指定日期: 2023-12-25// LocalDate转字符串 (yyyy-MM-dd HH:mm:ss)// 注意:LocalDate只有日期部分,时间部分默认为00:00:00DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");StringdateString=currentDate.atStartOfDay().format(formatter);System.out.println("LocalDate转字符串: "+dateString);// 输出示例: LocalDate转字符串: 2023-12-25 00:00:00// 字符串转LocalDate (yyyy-MM-dd HH:mm:ss)StringdateStr="2023-12-25 14:30:45";LocalDateparsedDate=LocalDate.parse(dateStr.substring(0,10));// 只取日期部分System.out.println("字符串转LocalDate: "+parsedDate);// 输出示例: 字符串转LocalDate: 2023-12-25LocalTime表示不带日期的时间,只包含时、分、秒、纳秒信息。
importjava.time.LocalTime;importjava.time.format.DateTimeFormatter;// 创建和赋值LocalTimecurrentTime=LocalTime.now();// 当前时间LocalTimespecificTime=LocalTime.of(14,30,45);// 指定时间// 打印值System.out.println("现在时间: "+currentTime);// 输出示例: 现在时间: 14:30:45.123System.out.println("指定时间: "+specificTime);// 输出示例: 指定时间: 14:30:45// LocalTime转字符串 (yyyy-MM-dd HH:mm:ss)// 注意:LocalTime只有时间部分,日期部分需要额外补充LocalDatedummyDate=LocalDate.now();DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");StringtimeString=dummyDate.atTime(currentTime).format(formatter);System.out.println("LocalTime转字符串: "+timeString);// 输出示例: LocalTime转字符串: 2023-12-25 14:30:45// 字符串转LocalTime (yyyy-MM-dd HH:mm:ss)StringtimeStr="2023-12-25 14:30:45";LocalTimeparsedTime=LocalTime.parse(timeStr.substring(11));// 只取时间部分System.out.println("字符串转LocalTime: "+parsedTime);// 输出示例: 字符串转LocalTime: 14:30:45| 时间类型 | 特点 | 主要使用场景 |
|---|---|---|
Date | 传统时间类,功能简单 | 兼容旧代码、简单时间戳 |
Calendar | 功能丰富,可设置各部分 | 复杂日期操作、本地化处理 |
LocalDateTime | 线程安全,API现代 | 新项目开发、复杂时间处理 |
LocalDate | 仅日期部分 | 生日、纪念日等日期记录 |
LocalTime | 仅时间部分 | 工作时间、营业时间等记录 |
date类型LocalDate(推荐)DateTimestampLocalDateLocalDate只包含日期部分,与 SQL Serverdate类型完美匹配datetime类型LocalDateTime(推荐)TimestampDateLocalDateTimeLocalDateTime是现代时间API,线程安全且API友好datetime2类型LocalDateTime(推荐)TimestampDateLocalDateTimeLocalDateTime能很好地处理这种精度smalldatetime类型LocalDateTime(推荐)TimestampDateLocalDateTimeLocalDateTime仍是最合适的现代API选择time类型LocalTime(推荐)Date(需配合日期)TimeLocalTimeLocalTime只处理时间部分,与time类型语义一致datetimeoffset类型OffsetDateTime(推荐)ZonedDateTimeOffsetDateTime| SQL Server 类型 | 推荐 Java 类型 | 理由 |
|---|---|---|
date | LocalDate | 语义匹配,只包含日期 |
datetime | LocalDateTime | 现代API,功能完整 |
datetime2 | LocalDateTime | 高精度支持 |
smalldatetime | LocalDateTime | API一致性 |
time | LocalTime | 只处理时间部分 |
datetimeoffset | OffsetDateTime | 时区偏移支持 |
推荐优先使用java.time包中的新时间API,因为它们是不可变的、线程安全的,并提供了更清晰的API设计。