Как преобразовать объект Calendar в формат dd-MM-yyyy в java? [Дубликат]

Sine Python 3.5 вы можете использовать функцию math.isclose(), если условия

import math

if math.isclose(0.1 + 0.2, 0.3, abs_tol=0.01):
    pass
160
задан entpnerd 20 February 2016 в 02:22
поделиться

8 ответов

java.util.Date объект не может представлять date в формате custom , вместо этого вы должны использовать метод SimpleDateFormat.format, который возвращает string.

String myString=format1.format(date);
6
ответ дан adatapost 3 September 2018 в 14:47
поделиться

java.time

Ответ MadProgrammer верен, особенно отзыв о Joda-Time . Преемник Joda-Time теперь встроен в Java 8 в качестве нового пакета java.time . Вот пример кода в Java 8.

При работе с датой (в отличие от локальной даты) часовой пояс в критическом состоянии. День месяца зависит от часового пояса. Например, часовой пояс в Индии равен +05:30 (пять с половиной часов до UTC), а Франция - всего на час вперед. Итак, момент в новый день в Индии имеет одну дату, а тот же момент во Франции имеет «вчерашнюю» дату. Создание строкового вывода без какой-либо временной зоны или информации о смещении создает двусмысленность. Вы просили вывести YYYY-MM-DD, поэтому я предоставил, но я не рекомендую его. Вместо ISO_LOCAL_DATE я бы использовал ISO_DATE , чтобы получить этот вывод: 2014-02-25+05:30

ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );

DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );

Dump to console ...

System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );

При запуске ...

zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25

Joda-Time

Аналогичный код с использованием библиотеки Joda-Time , предшественника java.time.

DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );

ISO 8601

Кстати, этот формат вашей входной строки является стандартным форматом, одним из нескольких удобных форматов строк даты и времени, определенных ISO 8601 .

Как Joda-Time, так и java.time используют ISO 8601 форматы по умолчанию при разборе и генерации строковых представлений различных значений даты и времени.

11
ответ дан Community 3 September 2018 в 14:47
поделиться
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 7);
Date date = c.getTime();
SimpleDateFormat ft = new SimpleDateFormat("MM-dd-YYYY");
JOptionPane.showMessageDialog(null, ft.format(date));

Это отобразит вашу дату + 7 дней в месяц, день и год в окне окна JOption.

2
ответ дан Drew 3 September 2018 в 14:47
поделиться

Чтобы разобрать объект java.util.Date, вы должны сначала преобразовать его в String, используя свой собственный формат.

inActiveDate = format1.parse(  format1.format(date)  );

Но я считаю, что вы здесь лишние.

2
ответ дан ElderMael 3 September 2018 в 14:47
поделиться

Я нашел этот код, где дата сравнивается в формате для сравнения с полем даты в базе данных ... может быть, это может быть полезно для вас ...

Когда вы конвертируете строку в дату, используя simpledateformat, трудно сравнивать с полем даты в базах данных mysql.

Итак, преобразуйте дату строки java в формате, используя select STR_to_DATE ('yourdate', '% m /% d /% Y'). -> в этом формате, то вы получите точный формат даты в поле даты mysql.

http://javainfinite.com/java/java-convert-string-to-date- и-сравнить /

0
ответ дан JavaLearner 3 September 2018 в 14:47
поделиться

Ваш код неверен. Нет точки разбора даты и сохранить ее как объект Date.

Вы можете отформатировать объект даты календаря, когда хотите отобразить его, и сохранить его как строку.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");          
String inActiveDate = null;
try {
    inActiveDate = format1.format(date);
    System.out.println(inActiveDate );
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}
15
ответ дан MadProgrammer 3 September 2018 в 14:47
поделиться
public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month, date);
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy MM dd");
    String formatted = format1.format(cal.getTime());
    System.out.println(formatted);
}
1
ответ дан Petr 3 September 2018 в 14:47
поделиться
public static String ThisWeekStartDate(WebDriver driver) {
        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        System.out.println("Before Start Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("Start Date " + CurrentDate);
          return CurrentDate;

    }
    public static String ThisWeekEndDate(WebDriver driver) {

        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        System.out.println("Before End Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("End Date " + CurrentDate);
          return CurrentDate;
    }
0
ответ дан Unnati Solanki 3 September 2018 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: