Loading...

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

Hristo_Penchev avatar Hristo_Penchev 389 Точки

[Technical Issue] Java - Форматиране на LocalDateTime

Работя по задача 5 от домашното. По принцип става с println(LocalDateTime.now());, но излиза с разни стотни. Та реших да форматирам изходните данни, прочетох някои неща за изход от конзолата от книгата за Джава, но нещо не мога да се орпавя:

System.out.println("$td/$tm/$tY %$tH:$tM", LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now());

Явно нещо не правя както трябва, пише ми, че този формат е неприемлив. Идеята предполагам я разбирате. Някой може ли да ми помогне да си открия грешката? Благодаря предварително!

-1
Java Advanced 03/09/2014 21:51:19
a.angelov avatar a.angelov 1316 Точки
Best Answer

Имаш две грешки:

1. Ползваш printLn, а когато ползваш форматиращи стрингове трябва да използваш printf;

2. % указва, че следва форматиране, a за да покажеш коя променлива да се ползва от въведените след форматиращия стринг се ползва $, но с поредния номер на променливата - т.е. 1$, 2$ и т.н., т.е. не можеш да ползваш само $ без номер на променливата.

Ето как трябва да изглежда кодът ти без указване на променлива с $:

System.out.printf("%td/%tm/%tY %tH:%tM", LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now(), LocalDateTime.now());

 

Ето още един по-кратък вариант - с 1$ указвам да се ползва първата променлива и съответно няма нужда от останалите четири LocalDateTime.now():

System.out.printf("%1$td/%1$tm/%1$tY %1$tH:%1$tM", LocalDateTime.now());

3
03/09/2014 10:54:41
KrasimirKirilov avatar KrasimirKirilov 5 Точки

        Date today = new Date();     
        
        System.out.printf("%1$td/%1$tm/%1$tY %1$tH:%1$tM", today);

// трябва да инмпортнеш и:  import java.util.Date;

//използва се printf не println ...ще има да се спъваме с Java след C# :)

1
03/09/2014 10:34:34
tdsamardzhiev avatar tdsamardzhiev 77 Точки

Има клас DateTimeFormatter, който е създаден специално за тази цел:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
String dateTimeNow = formatter.format(LocalDateTime.now());
System.out.println(dateTimeNow);

3
03/09/2014 11:17:17
veselinsavov avatar veselinsavov 219 Точки

>ТУК< можеш да намериш доста неща за форматирането.

1
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Благодаря ви, с printf стана.

1
quickben avatar quickben 966 Точки

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss a");
System.out.printf("The current date is: %s\n", dateFormat.format(date));
System.out.printf("The current time is: %s\n", timeFormat.format(date));

0
Krissycherrybomb avatar Krissycherrybomb 5 Точки

LocalDateTime current = LocalDateTime.now();
System.out.printf("%1$td.%1$tm.%1$tY",current);

 

Излиза грешка на printf , че методът е String,Object[] и не става за аргументите съответно String,LocalDateTime ..

0
Krissycherrybomb avatar Krissycherrybomb 5 Точки

Както и да пробвах излиза това и не мога да разбера къде е грешката

0
a.angelov avatar a.angelov 1316 Точки

Хм, много странно, не виждам да има някаква грешка...

0
RadheShyam avatar RadheShyam 2 Точки

To learn date and time in java refer date time formatting

In the link above you can learn lot of things about date time in java.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.