如何在java中将日期日期转换为西方日期?

时间:2015-07-20 08:29:48

标签: java date

我有这样的方法:

//datetime is millisecond
public static String getStringDateFormatMonth(long datetime) {
          String yearlessPattern = "yyyy年MM月";
          SimpleDateFormat yearlessSDF = new SimpleDateFormat(yearlessPattern);
          Date date = new Date(datetime);
          String datestr = yearlessSDF.format(date);
          return datestr;

         }

public static String getStringDateFormat(long datetime) {
          String yearlessPattern = "dd日";
          SimpleDateFormat yearlessSDF = new SimpleDateFormat(yearlessPattern);
          SimpleDateFormat sdfDay = new SimpleDateFormat("E", Locale.JAPAN);
          Date date = new Date(datetime);
          String datestr = yearlessSDF.format(date) + "(" + sdfDay.format(date) + ")";
          return datestr;

         }

初始化字符串a:

String a = LifelogUtil.getStringDateFormatMonth(currentDate.getTimeInMillis())
                    + LifelogUtil.getStringDateFormat(currentDate.getTimeInMillis());

我得到的结果是

2015年07月19日(日)

现在我想将此日期转换回西方日期,因为此格式为“yyyy-MM-dd”,但我无法想象如何做到这一点。请帮我!谢谢!

3 个答案:

答案 0 :(得分:2)

您给出的格式是区域日语格式,因此您可以使用默认选项。 为方便起见,请参阅此处的{j}文档http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html 试试这个

DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, new Locale("ja"));
System.out.println(df.parse("2015年07月20日"));
System.out.println(df.format(new Date()));

输出应该是这样的:

Mon Jul 20 00:00:00 IST 2015
2015年07月20日

请在此处IDEONE

参考之前的想法回答

答案 1 :(得分:2)

不要将Object转换为String,使用它并将其解析回来。将原始信息保留在Date对象中,并在任何需要的地方呈现输出(只读):

    // use an object internally:
    Date anyDate = new Date();

    // can also be SimpleDateFormat, etc:
    DateFormat japaneseDf = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPAN);
    DateFormat germanDf = DateFormat.getDateInstance(DateFormat.FULL, Locale.GERMANY);

    // when you need to display it somewhere render it appropriately, not changing the data:
    System.out.println(japaneseDf.format(anyDate));
    System.out.println(germanDf.format(anyDate));

打印出来:

2015年7月20日 (月曜日)
Montag, 20. Juli 2015

答案 2 :(得分:0)

这应该有所帮助。

        SimpleDateFormat jp= new SimpleDateFormat("yyyy年MM月dd日(E)",Locale.JAPAN); //Japan Format
        SimpleDateFormat west = new SimpleDateFormat("yyyy-MM-dd"); //Western Format
        try{
            Date date = jp.parse(a); //convert the String to date
            System.out.println(west.format(date));//format the date to Western 
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }