如何将javastring转换为Date对象

我有一个string

String startDate = "06/27/2007"; 

现在我必须得到Date对象。 我的DateObject应该与startDate的值相同。

我正在这样做

 DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); Date startDate = df.parse(startDate); 

但输出格式

1月27日00:06:00太平洋标准时间2007年。

您基本上有效地将您的date以string格式转换为date对象。 如果你在那一刻打印出来,你会得到标准的date格式输出。 为了在此之后进行格式化,您需要将其转换回指定格式的date对象(之前已经指定)

 String startDateString = "06/27/2007"; DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); Date startDate; try { startDate = df.parse(startDateString); String newDateString = df.format(startDate); System.out.println(newDateString); } catch (ParseException e) { e.printStackTrace(); } 

“mm”表示date的“分钟”片段。 对于“月”部分,使用“MM”。

所以,尝试将代码更改为:

 DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); Date startDate = df.parse(startDateString); 

编辑:一个DateFormat对象包含一个date格式定义,而不是一个date对象,它只包含date而不关心格式。 在谈论格式化时,我们正在讨论如何以特定格式创builddate的string表示。 看到这个例子:

  import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) throws Exception { String startDateString = "06/27/2007"; // This object can interpret strings representing dates in the format MM/dd/yyyy DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); // Convert from String to Date Date startDate = df.parse(startDateString); // Print the date, with the default formatting. // Here, the important thing to note is that the parts of the date // were correctly interpreted, such as day, month, year etc. System.out.println("Date, with the default formatting: " + startDate); // Once converted to a Date object, you can convert // back to a String using any desired format. String startDateString1 = df.format(startDate); System.out.println("Date in format MM/dd/yyyy: " + startDateString1); // Converting to String again, using an alternative format DateFormat df2 = new SimpleDateFormat("dd/MM/yyyy"); String startDateString2 = df2.format(startDate); System.out.println("Date in format dd/MM/yyyy: " + startDateString2); } } 

输出:

 Date, with the default formatting: Wed Jun 27 00:00:00 BRT 2007 Date in format MM/dd/yyyy: 06/27/2007 Date in format dd/MM/yyyy: 27/06/2007 
  try { String datestr="06/27/2007"; DateFormat formatter; Date date; formatter = new SimpleDateFormat("MM/dd/yyyy"); date = (Date)formatter.parse(datestr); } catch (Exception e) {} 

月份是MM,分钟是mm ..

简洁的版本:

 String dateStr = "06/27/2007"; DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); Date startDate = (Date)formatter.parse(dateStr); 

为ParseException添加try / catch块以确保格式是有效的date。

 var startDate = "06/27/2007"; startDate = new Date(startDate); console.log(startDate); 
  import java.util.*; import java.io.BufferedReader; import java.io.InputStreamReader; import java.text.*; public class EPOCH { public static void main(String[] args) throws InterruptedException { try { InputStreamReader isr = new InputStreamReader(System.in); System.out.print("pelase enter Epoch tme stamp : "); BufferedReader br = new BufferedReader(isr); String s=br.readLine(); long l=Long.parseLong(s); l=l*1000; Date date = new Date(l); DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); String formatted = format.format(date); System.out.println(formatted); format.setTimeZone(TimeZone.getTimeZone("IST")); formatted = format.format(date); Calendar c=Calendar.getInstance(); c.setTime(format.parse(formatted)); formatted = format.format(c.getTime()); System.out.println(formatted); } catch (Exception e) { e.printStackTrace(); }}}