Date类型变量初始值设置报错:赋值‘2023-01-04 01:05:30.0’语法错误
Date变量初始化语法错误的解决方法
核心问题:Date是时间对象类型,不能直接将字符串字面量赋值给它,必须通过解析字符串或传入时间参数的方式完成初始化。以下是几种主流语言的正确写法:
Java
- Java 8及之前版本,使用
SimpleDateFormat解析字符串:import java.text.SimpleDateFormat; import java.util.Date; public class DateInitExample { public static void main(String[] args) throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse("2023-01-04 01:05:30.0"); } } - Java 8+推荐使用新的日期API,再按需转换为
Date:
注意:解析方法会抛出异常,需捕获或声明抛出。import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Date; public class DateInitExample { public static void main(String[] args) { LocalDateTime localDateTime = LocalDateTime.parse( "2023-01-04 01:05:30.0", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S") ); Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); } }
JavaScript
- 直接传入字符串(现代浏览器/Node.js环境支持):
const date = new Date("2023-01-04 01:05:30.0"); - 兼容性更优的写法(手动传入时间参数,注意月份从0开始):
// 2023年1月4日1时5分30秒0毫秒 const date = new Date(2023, 0, 4, 1, 5, 30, 0);
C#
- 使用
ParseExact指定格式解析:using System; using System.Globalization; class Program { static void Main() { DateTime date = DateTime.ParseExact( "2023-01-04 01:05:30.0", "yyyy-MM-dd HH:mm:ss.f", CultureInfo.InvariantCulture ); } } - 若格式符合默认规则,也可直接转换:
DateTime date = Convert.ToDateTime("2023-01-04 01:05:30.0");
内容的提问来源于stack exchange,提问作者Niklas Werner
相关产品推荐
相关产品推荐

