2015-10-15 4 views
1
public void setEmployeeDetails(String month,String year,String day) throws 

SQLException, ParseException 
{ 

     String sql="INSERT INTO EmployeeDetails (SiteName,EmployeeName,EmployeePhoneNumber,Date) VALUES(?,?,?,?)"; 
      pStmt = conn.prepareStatement(sql) ; 

      String date=month+"/"+day+"/"+year; 
      SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); 
      java.util.Date parsed = format.parse(date); 
      java.sql.Date sql_date = new java.sql.Date(parsed.getTime()); 
      System.out.println(sql_date); 
     } 
    public static void main(String args[]) throws SQLException, ClassNotFoundException, ParseException{ 
     Employee_Details_DAO e=new Employee_Details_DAO(); 
     e.setEmployeeDetails("12","2006","10"); 
    } 

Я хочу преобразовать строчную дату в формате MM/ddd/yyy в формат даты доступа к sql ms. Но я получил выход в 2006-12-10, но выход должен быть 12/10/2006Строка Преобразование даты в формат даты в формате sql MM/dd/yyyy?

+0

этот код дает 'ММ/дд/только формат yyy'. – Satya

+0

nopes, он дает формат yyyy-MM-ddd, как указано выше. 2006-12-10 –

+0

Я думаю, вам нужен форматтер для переменной sql_date. Или даже лучше избавиться от sql_date. Не знаете, почему вы создаете экземпляр java.util.Date для создания экземпляра java.sql.Date. И вы захотите отформатировать его ПОСЛЕ создания экземпляра, а не раньше. – lps

ответ

1

Если System.out.println(sql_date); отображает значение даты, как 2006-12-10 это потому, что он использует форматyyyy-mm-dd в по умолчанию, либо из Java или операционной системы. Это не означает, что дата является «неправильной», она просто отображается по-другому.

Всегда помните:

Дата значения НЕ имеют форматы. Это просто (числовые) значения, которые соответствуют определенной дате.

[String] Представление дат сделать имеет формат. Однако формат не влияет на значение . Является ли это 2006-12-25 или 12/25/2006 или December 25, 2006 или 2006 décembre 25 Дата Значение все равно.

Таким образом, вам не нужно беспокоиться об использовании какого-либо конкретного формат для параметра Date, просто передать само значение:

try (
     Connection conn = DriverManager.getConnection(connStr); 
     PreparedStatement ps = conn.prepareStatement(
       "INSERT INTO EmployeeDetails ([Date]) VALUES (?)")) { 
    String month = "12"; // 
    String year = "2006"; // sample data 
    String day = "10";  // 
    ps.setDate(1, java.sql.Date.valueOf(year + "-" + month + "-" + day)); 
    ps.executeUpdate(); 
} 
0
System.out.println(format.format(sql_date));//12/10/2006 

java.sql.Date является подклассом java.util.Date. Таким образом, мы можем форматировать java.sql.Date так же, как java.util.Date.

+0

спасибо Satya, он работает .. –

+0

приветствуется;) @Codder – Satya

Смежные вопросы