如何将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(); }}}