我有以下代码,其中日期为字符串类型,我必须将其设置为美国格式
所以下面我已经展示了
private static final SimpleDateFormat usOutputDate = new SimpleDateFormat("MM/dd/yyyy");
在方法中,我编写了以下代码,在
dealDateString
中,值作为02-Mar-2015
// dealDateString = 02-Mar-2015
java.util.Date dealDate = extractDate(dealDateString);
//here its value get converted in US format that is 03/02/2015
String dd = usOutputDate.format(dealDate);
DateFormat format = new SimpleDateFormat("MM/dd/yyyy", Locale.US);
// ***issue comes here as it get back converted in US format ***
java.util.Date date = format.parse(dd);
brokerInvoiceLineItem.setDealDate(new Date(date));
如上面的代码所示,它在
String dd
中的值是03/02/2015
,但问题出在format变量,其中它的价值会转换为英国格式,我不希望这样做,请告知我如何将其转换为英国格式
已转换为以前存储在
String dd
中的美国格式。 最佳答案
试试这个...
try {
//parsing date format
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
String dealDateString = "02-Mar-2015";
Date date = formatter.parse(dealDateString);
TimeZone tz = TimeZone.getDefault();
//converting date format for US
SimpleDateFormat sdfAmerica = new SimpleDateFormat("MM/dd/yyyy");
TimeZone tzInAmerica = TimeZone.getTimeZone("America/New_York");
sdfAmerica.setTimeZone(tzInAmerica);
String sDateInAmerica = sdfAmerica.format(date); // Convert to String first
System.out.println("Date (String) : " + sDateInAmerica);
} catch (Exception bug) {
bug.printStackTrace();
}