关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
26天前关门了。
改进这个问题
嗨,我正在实现一个叫做日历的功能。现在从当前月份名称和当前年份开始如何显示日期名称和日期编号。
代码:
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date startDate = cal.getTime();
cal.add(Calendar.DATE, 6);
Date endDate = cal.getTime();
Log.d(TAG, "Start Date = " + startDate);
Log.d(TAG, "End Date = " + endDate);
例子: Dec 2020
预期产量:
Wed -9
Thu -10
Fri -11
Sat- 12
Sun- 13
有人能帮我实现我的目标吗
3条答案
按热度按时间cs7cruho1#
这就行了。
注:1月-
0
12月-11
1sbrub3j2#
java.time和desugaring
考虑使用java.time(现代java日期和时间api)进行日期和日历工作。
2020年12月运行时的产量(节选):
在我使用的打印输出中右对齐的一个月的某一天
ppd
在格式模式字符串中。在手机应用程序中显示,您可能更喜欢d
.编辑:对于下周的几天,初始化如下日期:
在一个月的最后一周运行代码时,可能会包含下个月的几天,这似乎与您所说的不一致:现在从当前月份名称和当前年份…。我希望你能找到一个满意的解决办法。
问:java.time不需要androidapi级别26吗?
java.time在较旧和较新的android设备上都能很好地工作。它至少需要Java6。
在Java8和更高版本以及更新的android设备上(api级别26),现代api是内置的。
在非android的java6和java7中获得了三个十的backport,即现代类的backport(三个十用于jsr310;请参见底部的链接)。
在旧的android上,要么使用desugaring,要么使用android版本的threeten backport。它叫3TENABP。在后一种情况下,请确保从导入日期和时间类
org.threeten.bp
有分装的。链接
oracle教程:date time解释如何使用java.time。
java规范请求(jsr)310,其中
java.time
第一次被描述。三十后港工程
java.time
到Java6和Java7(jsr-310为310)。通过desugaring提供Java8+API
threetenabp,android版threeten backport
问:如何在android项目中使用threetenabp,有非常透彻的解释。
im9ewurl3#
你可以用一个
for
循环声明为今天的初始值
月末终止值
一天增值
在循环体内部,打印3个字母的工作日名称(即。
EEE
)以及月日(即。d
)日期的格式为DateTimeFormatter.ofPattern("EEE - d", Locale.ENGLISH)
.输出:
注意:从今天开始,这个月的所有日期都是两位数,因此是否使用
d
或者dd
每月的某一天。但是,如果您的要求是打印月份的日期,请始终使用两位数(例如。01
而不是1
),使用dd
在DateTimeFormatter
图案。一些有用的注解:
api的日期时间
java.util
以及它们的格式化api,SimpleDateFormat
过时且容易出错。建议完全停止使用它们,并切换到现代日期时间api。在trail:date-time了解有关现代日期时间api的更多信息。出于任何原因,如果您必须坚持使用Java6或Java7,您可以使用threeten backport,它将大部分java.time功能向后移植到Java6和Java7。
如果您正在为一个android项目工作,并且您的android api级别仍然不符合java-8,请检查通过desugaring提供的java8+api以及如何在android项目中使用threetenabp。