SQL的Java日期格式
我有一个日期对象,我用它构造:SQL的Java日期格式,java,sql,date,Java,Sql,Date,我有一个日期对象,我用它构造: Calendar cal = new GregorianCalendar(); cal.set(2013, 12, 1, 0, 0, 0); Date begin = new Date(cal.getTimeInMillis()); 我正试图在查询中使用它,我知道查询的格式如下:2008-10-29 14:56:59 当我打印日期时,它看起来像:Wed Jan 01 00:00:00 EST 2014 我的问题: 如何将日期格式从2014
Calendar cal = new GregorianCalendar();
cal.set(2013, 12, 1, 0, 0, 0);
Date begin = new Date(cal.getTimeInMillis());
我正试图在查询中使用它,我知道查询的格式如下:2008-10-29 14:56:59
当我打印日期时,它看起来像:Wed Jan 01 00:00:00 EST 2014
我的问题:
如何将日期格式从2014年东部时间1月1日星期三00:00:00转换为2008-10-29 14:56:59
Calendar cal = new GregorianCalendar();
cal.set(2013, 11, 1, 0, 0, 0);
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(new Date(cal.getTimeInMillis())));
- 11号是十二月
Calendar cal = new GregorianCalendar();
cal.set(2013, 11, 1, 0, 0, 0);
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(new Date(cal.getTimeInMillis())));
- 11号是十二月
Calendar cal = new GregorianCalendar();
cal.set(2013, 11, 1, 0, 0, 0);
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(new Date(cal.getTimeInMillis())));
- 11号是十二月
Calendar cal = new GregorianCalendar();
cal.set(2013, 11, 1, 0, 0, 0);
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(new Date(cal.getTimeInMillis())));
- 11号是十二月
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateInString = "pass you date string here";
Date date = sdf.parse(dateInString);
希望这对您有所帮助。使用它可以获得您想要的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateInString = "pass you date string here";
Date date = sdf.parse(dateInString);
希望这对您有所帮助。使用它可以获得您想要的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateInString = "pass you date string here";
Date date = sdf.parse(dateInString);
希望这对您有所帮助。使用它可以获得您想要的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateInString = "pass you date string here";
Date date = sdf.parse(dateInString);
希望这有帮助。您可以使用SimpleDataFormat类。我在下面给出了一个简单的例子 这里您必须提供所需的日期格式,日期对象
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date =null;
date = dateformat.format(begin);
System.out.println(date);
您可以使用SimpleDataFormat类。我在下面给出了一个简单的例子 这里您必须提供所需的日期格式,日期对象
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date =null;
date = dateformat.format(begin);
System.out.println(date);
您可以使用SimpleDataFormat类。我在下面给出了一个简单的例子 这里您必须提供所需的日期格式,日期对象
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date =null;
date = dateformat.format(begin);
System.out.println(date);
您可以使用SimpleDataFormat类。我在下面给出了一个简单的例子 这里您必须提供所需的日期格式,日期对象
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date =null;
date = dateformat.format(begin);
System.out.println(date);
与数据库通信时使用对象而不是字符串。对于日期时间值,请使用日期时间对象 java.time 避免麻烦的旧日期时间类,包括
Calendar
和gregorianalendar
。它们设计拙劣,有缺陷,令人困惑。他们的问题之一是toString
方法,这些方法在生成字符串时动态应用JVM当前的默认时区,本想有所帮助,但结果却是一个反特性
相反,使用现代的java.time类
如果为和更新了,请直接使用java.time类型,而不是java.sql类型
更改输入字符串以符合ISO 8601格式。将中间的空格改为T
String input = "2008-10-29 14:56:59".replace( " " , "T" ) ;
解析为LocalDateTime
,因为您的输入没有任何时区或UTC偏移的指示
LocalDateTime ldt = LocalDateTime.parse( input ) ;
或者将日期时间值指定为整数
LocalDateTime ldt = LocalDateTime.of( 2013 , 12 , 1 , 0 , 0 , 0 , 0 ) ;
如果数据库列的类型为TIMESTAMP而不带时区
,则可以进行查询。请确保您了解,如果没有时区或UTC偏移的上下文,这些值并不代表特定时刻,也不是时间线上的一个点,而是关于可能时刻的模糊概念
String sql = "SELECT * FROM tbl_ WHERE when_ >= ? ; " ;
PreparedStatement ps = conn.prepareStatement( sql ) ;
ps.setObject( 1 , ldt ) ; // Call `setObject` to pass a java.time object directly without converting into `java.sql.*` type.
ResultSet resultSet = ps.executeQuery() ;
…
LocalDateTime ldt = resultSet.getObject( … , LocalDateTime.class ) ;
如果您打算跟踪实际时刻、时间轴上的特定点,那么您将使用带时区的
时间戳作为数据库列类型,并使用Instant
和zoneDateTime
java.TIME类。在与数据库通信时使用对象而不是字符串。对于日期时间值,请使用日期时间对象
java.time
避免麻烦的旧日期时间类,包括Calendar
和gregorianalendar
。它们设计拙劣,有缺陷,令人困惑。他们的问题之一是toString
方法,这些方法在生成字符串时动态应用JVM当前的默认时区,本想有所帮助,但结果却是一个反特性
相反,使用现代的java.time类
如果为和更新了,请直接使用java.time类型,而不是java.sql类型
更改输入字符串以符合ISO 8601格式。将中间的空格改为T
String input = "2008-10-29 14:56:59".replace( " " , "T" ) ;
解析为LocalDateTime
,因为您的输入没有任何时区或UTC偏移的指示
LocalDateTime ldt = LocalDateTime.parse( input ) ;
或者将日期时间值指定为整数
LocalDateTime ldt = LocalDateTime.of( 2013 , 12 , 1 , 0 , 0 , 0 , 0 ) ;
如果数据库列的类型为TIMESTAMP而不带时区
,则可以进行查询。请确保您了解,如果没有时区或UTC偏移的上下文,这些值并不代表特定时刻,也不是时间线上的一个点,而是关于可能时刻的模糊概念
String sql = "SELECT * FROM tbl_ WHERE when_ >= ? ; " ;
PreparedStatement ps = conn.prepareStatement( sql ) ;
ps.setObject( 1 , ldt ) ; // Call `setObject` to pass a java.time object directly without converting into `java.sql.*` type.
ResultSet resultSet = ps.executeQuery() ;
…
LocalDateTime ldt = resultSet.getObject( … , LocalDateTime.class ) ;
如果您打算跟踪实际时刻、时间轴上的特定点,那么您将使用带时区的时间戳作为数据库列类型,并使用Instant
和zoneDateTime
java.TIME类。在与数据库通信时使用对象而不是字符串。对于日期时间值,请使用日期时间对象
java.time
避免麻烦的旧日期时间类,包括Calendar
和gregorianalendar
。它们设计拙劣,有缺陷,令人困惑。他们的问题之一是toString
方法,这些方法在生成字符串时动态应用JVM当前的默认时区,本想有所帮助,但结果却是一个反特性
相反,使用现代的java.time类
如果为和更新了,请直接使用java.time类型,而不是java.sql类型
更改输入字符串以符合ISO 8601格式。将中间的空格改为T
String input = "2008-10-29 14:56:59".replace( " " , "T" ) ;
解析为LocalDateTime
,因为您的输入没有任何时区或UTC偏移的指示
LocalDateTime ldt = LocalDateTime.parse( input ) ;
或者将日期时间值指定为整数
LocalDateTime ldt = LocalDateTime.of( 2013 , 12 , 1 , 0 , 0 , 0 , 0 ) ;
如果数据库列的类型为TIMESTAMP而不带时区
,则可以进行查询。请确保您了解,如果没有时区或UTC偏移的上下文,这些值并不代表特定时刻,也不是时间线上的一个点,而是关于可能时刻的模糊概念
String sql = "SELECT * FROM tbl_ WHERE when_ >= ? ; " ;
PreparedStatement ps = conn.prepareStatement( sql ) ;
ps.setObject( 1 , ldt ) ; // Call `setObject` to pass a java.time object directly without converting into `java.sql.*` type.
ResultSet resultSet = ps.executeQuery() ;
…
LocalDateTime ldt = resultSet.getObject( … , LocalDateTime.class ) ;
如果您打算跟踪时间线上的实际时刻、特定点,那么您将使用带时区的时间戳作为数据库列类型,并使用