web-dev-qa-db-ja.com

日付を2桁形式で表示する

日付を2桁形式で表示できません。日または月が1桁の例の場合:4が04を表示するようにします。そのためのロジックを考えるのに苦労しています。

Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int day = c.get(Calendar.DAY_OF_MONTH);
        int month = c.get(Calendar.MONTH);

        if (month % 10 == 0) {

            Place = 0 + month;
        }
        String Dates = year + "-" + Place + "-" + day;
        Date.setText((Dates));
23
The Tokenizer
DecimalFormat mFormat= new DecimalFormat("00");
mFormat.format(Double.valueOf(year));

あなたの場合:

 mFormat.setRoundingMode(RoundingMode.DOWN);
 String Dates =  mFormat.format(Double.valueOf(year)) + "-" +  mFormat.format(Double.valueOf(Place)) + "-" +  mFormat.format(Double.valueOf(day));
44
Azhar Shaikh

SimpleDateFormatを使用してください

SimpleDateFormat sd1 = new SimpleDateFormat("dd-MMM-yyyy");
System.out.println("Date : " + sd1.format(new Date(c.getTimeInMillis()));

出力

Date : 18-Apr-2012
15
Code Behind
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH)+1;

String Dates = year + "-" +(month<10?("0"+month):(month)) + "-" + day;
Date.setText((Dates));
10
V.J.
if (dayOfMonth < 10) {
    NumberFormat f = new DecimalFormat("00");
    Sting date = String.valueOf(f.format(dayOfMonth));
}
8
Ness Tyagi

tl; dr

LocalDate.now()
         .toString()

2016-01-07

希望する/予想されるタイムゾーンを常に明示的に指定することをお勧めします。

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString()

古い日時クラスを避ける

現在使用しているJava.util.Calendarクラスはレガシーです。 Java.util.Dateなどと一緒にこのクラスを避けてください。これらは、設計が不十分で、混乱を招き、面倒であることが証明されています。

Java.time

古い日付時刻クラスは、Java 8以降に組み込まれた Java.time フレームワークに取って代わりました。機能の多くは、 ThreeTen-Backport プロジェクトのJava 6および7にバックポートされ、 ThreeTenABP のAndroidにさらに適合しました。

これらの最新のクラスは、以下に示すように、1行のコードで目標を達成できます。

日時フォーマット機能

古い旧式の日付時刻クラスとJava.timeクラスの両方がフォーマット機能を提供します。独自のフォーマットコードを記述する必要はありません。

タイムゾーン

タイムゾーンは、日付を決定するために重要です。東部では新しい日が早く来るため、日付は時間帯によって世界中で異なります。この問題は、質問およびその他の回答では無視されました。省略すると、JVMの現在のデフォルトのタイムゾーンが暗黙的に適用されます。希望する/予想されるタイムゾーンを明示的に指定する方が適切です。

LocalDate

時刻とタイムゾーンのない日付のみの値の場合は、 LocalDate を使用します。 LocalDate内にはタイムゾーンが格納されていませんが、タイムゾーンによって「今日」が決定されます。

ZoneId zoneId = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( zoneId );

ISO 8601

希望するYYYY-MM-DDの2桁の形式は、日時値のテキスト表現の賢明な形式を定義する ISO 8601 標準に準拠しています。この標準は、文字列の解析/生成のためにJava.timeクラスでデフォルトで使用されます。

String output = today.toString();

それがすべて、3行のコードです。それらを組み合わせることもできます。

String output = LocalDate.now( ZoneId.of( "America/Montreal" ) ).toString();

Java.timeについて

Java.time フレームワークは、Java 8以降に組み込まれています。これらのクラスは、 Java.util.DateCalendar 、& SimpleDateFormat などの厄介な古い legacy date-timeクラスに取って代わります。

メンテナンスモード になった Joda-Time プロジェクトは、 Java.time クラスへの移行を推奨しています。

詳細については、 Oracle Tutorial を参照してください。また、Stack Overflowで多くの例と説明を検索してください。指定は JSR 31 です。

Java.timeオブジェクトをデータベースと直接交換できます。 JDBC 4.2 以降に準拠する JDBCドライバー を使用します。文字列もJava.sql.*クラスも必要ありません。

Java.timeクラスはどこで入手できますか?

  • Java SE 8Java SE 9 、およびそれ以降
    • ビルトイン。
    • 実装がバンドルされた標準Java APIの一部。
    • Java 9は、いくつかのマイナーな機能と修正を追加します。
  • Java SE 6 および Java SE 7
    • Java.time機能の多くは、 ThreeTen-Backport のJava 6および7にバックポートされています。
  • Android
    • Android以降のバージョンでは、Java.timeクラスの実装がバンドルされています。
    • 以前のAndroidの場合、 ThreeTenABP プロジェクトはThreeTen-Backport(上記)に適合します。 ThreeTenABPの使用方法… を参照してください。

ThreeTen-Extra プロジェクトは、追加のクラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性のある証明の場です。 IntervalYearWeekYearQuarter 、および more などの便利なクラスがあります。

4
Basil Bourque
if ((month+1)<10){
    place = "0"+(String) (month+1)
}

一日も同じことをすればいいのです。

0から始まるため、月に+1。

2
drulabs

SimpleDateFormat class。を使用します。これを行う方法はたくさんあります。

このようなもの..

 SimpleDateFormat sdfSource = new SimpleDateFormat("dd/MM/yy"); // you can add any format..


      Date date = sdfSource.parse(strDate);
2
ngesh

Java 8 Timeライブラリ:

String date = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
2
Zee

SimpleDateFormatクラスを使用できます

String dates = new Java.text.SimpleDateFormat("dd-MM-YYYY").format(new Date())

詳細については https://docs.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html

1
srsajid

string.format()メソッドを使用できます。

例:

String.format("%02d", month);

選択した月が10未満の場合、月の前に「0」が追加されます。

0
Muhammad Baqir

ジョーダタイム

Joda-Time ライブラリ、特に org.joda.time.DateTime クラス。

DateTime datetime = new DateTime(new Date());
String month = datetime.toString("MM");

結果は2桁になります

たとえば1年必要な場合は、次を使用できます。

String year = datetime.toString("YYYY");

結果は年の4桁になります。

0
Lucas Pires