Как получить системное время в Netbeans? - PullRequest
0 голосов
/ 01 ноября 2011

Я хочу отображать системное время (не дату) в JLabel.Могу ли я использовать эту дату для сравнения?

Справочная информация: я разрабатываю систему Netbeans Java Project - Multiplex Ticket Booking.Пользователь не должен иметь возможность забронировать билет, если фильм уже начался.

Я не знаю Core Java.Поэтому, пожалуйста, сделайте ответ длинным и ясным, чтобы даже новичок мог понять.

Ответы [ 4 ]

1 голос
/ 08 августа 2012
Calendar cal = Calendar.getInstance(); 
cal.getTime(); 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
time.setText(sdf.format(cal.getTime()));

время ---> имя JLabel

0 голосов
/ 02 апреля 2019

Я хотел бы внести современный ответ. Классы Calendar, Date и SimpleDateFormat, используемые в других ответах, плохо разработаны и, к счастью, устарели.

java.time

    ZoneId cinemaTimeZone = ZoneId.of("America/Argentina/Tucuman");
    DateTimeFormatter timeFormatter
            = DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM)
                    .withLocale(Locale.forLanguageTag("es"));

    LocalDateTime movieStartTime = LocalDateTime.of(2019, Month.APRIL, 2, 8, 30);

    ZonedDateTime systemTime = ZonedDateTime.now(cinemaTimeZone);
    String displayTime = systemTime.format(timeFormatter);
    timeLabel.setText(displayTime);

    if (systemTime.isAfter(movieStartTime.atZone(cinemaTimeZone))) {
        System.out.println("Movie has started, no more tickets will be sold.");
    }

Это отобразит строку типа 8:02:40 в вашем JLabel (я предположил, что она называется timeLabel, но вы, конечно, можете изменить это).

Я использую встроенный формат локализованного времени для форматирования времени (без даты). Вы можете контролировать, насколько кратким или многословным формат вам нравится, предоставляя стиль формата FULL, LONG, MEDIUM или SHORT. И вы управляете культурным стилем, предоставляя язык.

ZonedDateTime.now() дает нам текущее время, которое мы используем для сравнения со временем начала фильма. Конечно, сравнение должно проводиться в часовом поясе кинотеатра (если вы не хотите, чтобы Америка / Аргентина / Тукуман, разместите что-нибудь еще).

Поскольку я запускал код до 8:30 в этом часовом поясе (время начала фильма), он не печатал Фильм запущен, Если мы запустим его позже, оно будет.

Ссылка: Учебное пособие по Oracle: Дата и время , объясняющее использование java.time.

0 голосов
/ 02 апреля 2019
import java.text.SimpleDateFormat;
import java.util.Date;
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(d)

выходной: вт. 02 апреля 11:32:45 CAT 2019 Это работает 100% времени, ребята:)

0 голосов
/ 23 июня 2015

Для отображения текущего времени вы можете использовать

    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    jLabel1.setText("The current time is "+sdf.format(d));

Чтобы узнать, запущен фильм или нет:

Мы можем сохранить время начала фильма в типе данных Date и создать функцию, которая будет принимать время начала фильма в качестве входных данных и сравнивать его с текущей датой, чтобы определить, можно ли забронировать билет на фильм или нет

boolean Has_movie_started(Date movie_start_date){
        //gets the current time 
        Date current_time = new Date();
        //calculates the difference in Milliseconds between start of movie and current time 

        long difference_milliseconds = movie_start_date.getTime()-current_time.getTime();

        //getTime() method returns how many milliseconds have passed since January 1, 1970, 00:00:00 GMT


        boolean movie_started;

      // if the difference is positive that means that movie has much more milliseconds and then current date.  

            if(difference_milliseconds>0){
                movie_started = false;
            }
            else{
                movie_started = true;
            }

        return movie_started;
    }

Эта функция возвращает false, если фильм еще не начался, иначе true, то есть фильм уже запущен. Вы можете использовать это, чтобы определить, можно ли забронировать билет на этот фильм или нет. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...