web-dev-qa-db-ja.com

文字列をandroid

文字列を日付形式に変換しようとしていますが、さまざまな方法を試していますが、成功しませんでした。私の文字列は「2012年1月17日」です。これを「2011-10-17」に変換したいと思います。誰かがこれを行う方法を教えてもらえますか?例を試したことがあれば、それは本当に助けになります!

15
TRS
public class Utils {

    public static void main(String[] args) {

        String mytime="Jan 17, 2012";
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "MMM dd, yyyy");

        Date myDate = null;
        try {
            myDate = dateFormat.parse(mytime);

        } catch (ParseException e) {
            e.printStackTrace();
        }

        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        String finalDate = timeFormat.format(myDate);

        System.out.println(finalDate);
    }
}
31
   String format = "yyyy-MM-dd";
   SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
   System.err.format("%30s %s\n", format, sdf.format(new Date(0)));
   sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
   System.err.format("%30s %s\n", format, sdf.format(new Date(0)));

PDTタイムゾーンで実行すると、次の出力が生成されます。

                 yyyy-MM-dd 1969-12-31
                 yyyy-MM-dd 1970-01-01

詳細については、 ここ を参照してください。

5
user370305

Joda Time を使用することをお勧めします。これは、Javaでのdate/dateTime操作に最適で最も単純なライブラリであり、(Javaのデフォルトのフォーマットクラスとは対照的に)ThreadSafeです。

あなたはそれをこのように使用します:

// Define formatters:
DateTimeFormatter inputFormat = DateTimeFormat.forPattern("MMM dd, yyyy");
DateTimeFormatter outputFormat = DateTimeFormat.forPattern("yyyy-MM-dd");

// Do your conversion:
String inputDate = "Jan 17, 2012";
DateTime date = inputFormat.parseDateTime(inputDate);
String outputDate = outputFormat.print(date);
// or:
String outputDate = date.toString(outputFormat);
// or:
String outputDate = date.toString("yyyy-MM-dd");

// Result: 2012-01-17

また、日付の操作(日、時差などの追加)に役立つメソッドも多数用意されています。また、テスト容易性と依存性注入を容易にするために、ほとんどのクラスへのインターフェースを提供します。

2
Guillaume

文字列を文字列に変換する理由ミリ秒単位の現在の時刻をフォーマット済みの文字列に変換しようとすると、このメソッドはミリ秒をデータ形式に変換します。

 public static String getTime(long milliseconds)
{

         return DateFormat.format("MMM dd, yyyy", milliseconds).toString();
}

理解を深めるために、 DATE FORMATE クラスを試すこともできます。

1
AAnkit
You can't convert date from one format to other. while you are taking the date take you have take the date which ever format the you want. If you want the date in yyyy-mm-dd. You can get this by using following way.

            Java.util.Calendar calc = Java.util.Calendar.getInstance();

        int day = calc.get(Java.util.Calendar.DATE);
        int month = calc.get(Java.util.Calendar.MONTH)+1;
        int year = calc.get(Java.util.Calendar.YEAR);

           String currentdate = year +"/"+month +"/"+day ;
1
mayur rahatekar
public static Date getDateFromString(String date) {

    Date dt = null;

    if (date != null) {
        for (String sdf : supportedDateFormats) {
            try {
                dt = new Date(new SimpleDateFormat(sdf).parse(date).getTime());
                break;
            } catch (ParseException pe) {
                pe.printStackTrace();
            }
        }
    }
    return dt;
}
0