57

ToDate前の日付とFromDate今月の最初の日付を取得しようとしています。1月の場合は、1/1/2013などです。今月の最初の日付を正しく取得するには? 私はそれをすることができません。

today.add(Calendar.DAY_OF_MONTH, -1);
java.util.Date previousDay=today.getTime();
ToDate = sdfFile1.format(newjava.sql.Date(previousDay.getTime()));
today.add(Calendar.DATE, 1);
java.util.Date nextDay=today.getTime();
FromDate = sdfFile1.format(new java.sql.Date(nextDay.getTime()));
4

11 に答える 11

112

試す

    Calendar c = Calendar.getInstance();   // this takes current date
    c.set(Calendar.DAY_OF_MONTH, 1);
    System.out.println(c.getTime());       // this returns java.util.Date

更新(Java 8以降):

import java.time.LocalDate;
LocalDate todaydate = LocalDate.now();
System.out.println("Months first date in yyyy-mm-dd: " +todaydate.withDayOfMonth(1));
于 2013-01-09T16:37:33.173 に答える
27
于 2015-11-08T05:11:12.850 に答える
7
Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_MONTH, 1);
于 2013-01-09T16:37:46.813 に答える
3

城田時間

質問を正しく理解している場合は、joda time を使用して非常に簡単に行うことができます

LocalDate fromDate = new LocalDate().withDayOfMonth(1);
LocalDate toDate = new LocalDate().minusDays(1);
于 2016-06-08T18:59:40.663 に答える
1

時間も 0 に設定する場合、コードは次のとおりです。

import java.util.*;
import java.text.*;

public class DateCalculations {
  public static void main(String[] args) {

    Calendar aCalendar = Calendar.getInstance();

    aCalendar.set(Calendar.DATE, 1);
    aCalendar.set(Calendar.HOUR_OF_DAY, 0);
    aCalendar.set(Calendar.MINUTE, 0);
    aCalendar.set(Calendar.SECOND, 0);

    Date firstDateOfCurrentMonth = aCalendar.getTime();

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zZ");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

    String dayFirst = sdf.format(firstDateOfCurrentMonth);
    System.out.println(dayFirst);
  }
}

http://www.browxy.com/を使用すると、コンパイルせずにオンラインで簡単に確認できます 。

于 2017-12-04T08:44:15.783 に答える