即时通讯很难尝试将此打印语句更改为一个变量,以便与其他变量进行比较。
如果需要确定两个日期之间的差值,是否可以将输出存储为变量而不是打印?
import java.util.GregorianCalendar;
import java.util.Calendar;
public class Test {
public static void main(String[] args){
int Day = 8;
int Month = 2;
int Year = 1950;
GregorianCalendar gcal = new GregorianCalendar(Year, Month, Day);
String month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
System.out.println(month[gcal.get(Calendar.MONTH)] + " " + gcal.get(Calendar.DATE) + ", "
+ gcal.get(Calendar.YEAR));}
}
输出输出:1950年3月8日
要将其存储为变量,以便可以将其与其他日期进行比较,请致电getTime()
:
int Day = 8;
int Month = 2;
int Year = 1950;
GregorianCalendar gcal = new GregorianCalendar(Year, Month, Day);
Date date = gcal.getTime();
要将其格式化为Mar 8, 1950
,请使用SimpleDateFormat
:
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d, yyyy", Locale.US);
String str = dateFormat.format(date);
无需自己输入月份名称。
但是,如果您使用的是Java 8或更高版本1,则应使用LocalDate
该类而不是GregorianCalendar
:
int day = 8;
int month = 3;
int year = 1950;
LocalDate date = LocalDate.of(year, month, day);
请注意,与有所不同GregorianCalendar
,该month
值基于1,因此必须3
为get Mar
。
要将其格式化为Mar 8, 1950
,请使用DateTimeFormatter
:
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MMM d, uuuu", Locale.US);
String str = date.format(dateFormat);
1)如果您使用的是Java 6或7,则仍可以LocalDate
通过添加ThreeTen-Backport库来使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句