Java 如何从日期获取当前月份

Java 如何从日期获取当前月份,java,android,Java,Android,我需要将长值转换为任意日期。接下来,我要写出月份,转换为字符串。我想在文本视图上显示月份 我试过: Date dt = new Date(); Calendar cal= Calendar.getInstance(); cal.setTime(dt); //get current time long dateAsLong = calendar.getTimeInMillis(); // get currentTime as long CalendarView.setDate(dateAsL

我需要将长值转换为任意日期。接下来,我要写出月份,转换为字符串。我想在文本视图上显示月份

我试过:

Date dt = new Date();
Calendar cal= Calendar.getInstance();
cal.setTime(dt);  //get current time

long dateAsLong = calendar.getTimeInMillis(); // get currentTime as long

CalendarView.setDate(dateAsLong); // give the view CalendarView the current date 


TextView tv= (TextView) findViewById(R.id.TextViewDate);
tv.setText(String.valueOf(dateAsLong)); // <-- but this is wrong
Date dt=新日期();
Calendar cal=Calendar.getInstance();
校准设定时间(dt)//获取当前时间
long dateAsLong=calendar.getTimeInMillis();//获得尽可能长的时间
CalendarView.setDate(dateAsLong);//为视图日历提供当前日期
TextView tv=(TextView)findViewById(R.id.TextViewDate);
tv.setText(String.valueOf(dateAsLong));// 使用以下代码:

    long longDate=12334;
    Date date=new Date(longDate);
    String month=new SimpleDateFormat("MMMM").format(date); //you can use month for display

希望有帮助。

首先从Long那里获得日期

    Date date = new Date();
    System.out.println(date.getTime());//Timestamp 
    long timestamp = date.getTime();
    date = new Date(timestamp);
    String month = new SimpleDateFormat("MMMM").format(date);//Get month string
    System.out.println(month);
long val = 1346524199000l;
Date date=new Date(val);
SimpleDateFormat df2 = new SimpleDateFormat("MMM");
String month= df2.format(date);
一旦您以字符串的形式创建了月份,请使用下面的代码将其转换为android textView

textview.setText(month);
tl;博士 将长值转换为写入的…日期…月份

奥托布雷

避免遗留日期时间类 其他答案使用了麻烦的旧日期时间类,这些类现在是遗留的,被java.time类取代

java.time 假设您的
long
值表示自UTC 1970年第一个时刻以来的毫秒计数,请使用
Instant

该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)

你想写一个月。确定一个月意味着确定一个日期。确定日期需要时区。在任何一个特定的时刻,世界各地的日期都因地区而异。例如,中午夜后几分钟是新的一天,而中仍然是“昨天”

大陆/地区
的格式指定,例如,或
太平洋/奥克兰
。切勿使用3-4个字母的缩写,如
EST
IST
,因为它们不是真正的时区,也不是标准化的,甚至不是唯一的(!)

现在,请接受本月的审问。time类包括一个
Month
enum,表示一月到十二月的月份

Month m = zdt.getMonth() ;
Month
enum包括一些方便的方法,例如以自动本地化的格式生成字符串

String output = m.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH )  ;  // Or Locale.US, Locale.ITALY, etc.

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和。

几乎可能是重复的,但主要问题是从转换的日期获取月份名称。但是谢谢你的奉献!
ZoneId z = ZoneId.of( "Africa/Tunis" ); 
ZonedDateTime zdt = instant.atZone( z ) ;  // Same moment in history, but adjusted into the wall-clock time of a particular region of people.
Month m = zdt.getMonth() ;
String output = m.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH )  ;  // Or Locale.US, Locale.ITALY, etc.