Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL的Java日期格式_Java_Sql_Date - Fatal编程技术网

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 ) ;
如果您打算跟踪时间线上的实际时刻、特定点,那么您将使用带时区的
时间戳作为数据库列类型,并使用