代码拉取完成,页面将自动刷新
本项目是基于开源项目 JodaTime 进行鸿蒙化的移植和开发的,可以通过项目标签以及github地址( https://github.com/dlew/joda-time-android )追踪到原安卓项目版本
下载JodaTime的jar包JodaTime.jar。
启动 DevEco Studio,将下载的jar包,导入工程目录“entry->libs”下。
在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下jar包的引用。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
……
}
在sdk5,DevEco Studio2.1 beta3下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
2.使用实例 初始sample的构建
public class sampleDateRangeslice extends AbilitySlice {
private DirectionalLayout directionalLayout = new DirectionalLayout(this);//初始化layout
private DirectionalLayout.LayoutConfig layoutConfigD = new DirectionalLayout.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_CONTENT,
ComponentContainer.LayoutConfig.MATCH_CONTENT);//设置layout参数
@Override
protected void onStart(Intent intent) {
super.onStart(intent);
directionalLayout.setWidth(ComponentContainer.LayoutConfig.MATCH_PARENT);
directionalLayout.setHeight(ComponentContainer.LayoutConfig.MATCH_PARENT);
directionalLayout.setPadding(32, 32, 80, 80);//设置间距
ShapeElement element = new ShapeElement();//初始化button背景
element.setRgbColor(new RgbColor(255, 255, 255));
directionalLayout.setBackground(element);
Text welcome = new Text(this);//初始化欢迎标题
welcome.setLayoutConfig(layoutConfigD);
welcome.setText("sampleDateRange测试结果:");
welcome.setTextSize(85);
welcome.setTextColor(Color.RED);
welcome.setMultipleLine(true);
directionalLayout.addComponent(welcome);
sampleDateRange();
super.setUIContent(directionalLayout);//应用layout
}
private void addSample(CharSequence title, Iterable<String> text) {//定义测试sample
addSample(title, join("\n",text));
}
public static String join( CharSequence delimiter, Iterable tokens) {//定义字符串的链接
final Iterator<?> it = tokens.iterator();
if (!it.hasNext()) {
return "";
}
final StringBuilder sb = new StringBuilder();
sb.append(it.next());
while (it.hasNext()) {
sb.append(delimiter);
sb.append(it.next());
}
return sb.toString();
}
private void addSample(CharSequence title, CharSequence text) {//定义测试sample主体
Text titleText = new Text(this);
titleText.setLayoutConfig(layoutConfigD);
titleText.setText((String) title);
titleText.setTextColor(Color.BLUE);
titleText.setTextSize(75);
titleText.setMultipleLine(true);
Text textT = new Text(this);
textT.setLayoutConfig(layoutConfigD);
textT.setText((String) text);
textT.setTextSize(70);
textT.setMultipleLine(true);
directionalLayout.addComponent(titleText);
directionalLayout.addComponent(textT);
}
3:标准时间类的使用
private void sampleDateTime() {
List<String> text = new ArrayList<String>();
DateTime now = DateTime.now();
text.add("Now: " + now);
text.add("Now + 30 minutes: " + now.plusMinutes(30));
text.add("Now + 5 hours: " + now.plusHours(5));
text.add("Now + 2 days: " + now.plusDays(2)+"\n\n");
addSample("DateTime", text);
}
4:格式化时间类的使用
private void sampleFormatDateTime() {
List<String> text = new ArrayList<String>();
DateTime now = DateTime.now();
text.add("Show time: " + DateUtils.formatDateTime(this, now, FORMAT_SHOW_TIME));
text.add("Show date: " + DateUtils.formatDateTime(this, now, FORMAT_SHOW_DATE));
text.add("Numeric date: " + DateUtils.formatDateTime(this, now, FORMAT_NUMERIC_DATE));
text.add("Show date (abbreviated): " + DateUtils.formatDateTime(this, now, FORMAT_ABBREV_ALL));
addSample("DateUtils.formatDateTime()", text);
}
5:格式化一段时间的表示使用
private void sampleFormatDuration() throws IOException, NotExistException, WrongTypeException {
List<String> text = new ArrayList<String>();
text.add("Seconds: " + DateUtils.formatDuration(this, Duration.standardSeconds(25)));
text.add("Minutes: " + DateUtils.formatDuration(this, Duration.standardMinutes(5)));
text.add("Hours: " + DateUtils.formatDuration(this, Duration.standardHours(3)));
addSample("DateUtils.formatDuration()", text);
}
6:相对时间的表示
private void sampleGetRelativeDateTimeString() throws NotExistException, WrongTypeException, IOException {
List<String> text = new ArrayList<String>();
DateTime now = DateTime.now();
text.add("Short future: " + DateUtils.getRelativeDateTimeString(this, now.plusMinutes(25), null, 0));
text.add("Medium future: " + DateUtils.getRelativeDateTimeString(this, now.plusHours(5), null, 0));
text.add("Long future: " + DateUtils.getRelativeDateTimeString(this, now.plusDays(3), null, 0));
text.add("Short past: " + DateUtils.getRelativeDateTimeString(this, now.minusMinutes(25), null, 0));
text.add("Medium past: " + DateUtils.getRelativeDateTimeString(this, now.minusHours(5), null, 0));
text.add("Long past: " + DateUtils.getRelativeDateTimeString(this, now.minusDays(3), null, 0));
addSample("DateUtils.getRelativeDateTimeString()", text);
}
7:显示一段时间的相对表示
private void sampleGetRelativeTimeSpanString() throws NotExistException, WrongTypeException, IOException {
List<String> text = new ArrayList<String>();
DateTime now = DateTime.now();
text.add("Short future: " + DateUtils.getRelativeTimeSpanString(this, now.plusMinutes(25)));
text.add("Medium future: " + DateUtils.getRelativeTimeSpanString(this, now.plusHours(5)));
text.add("Long future: " + DateUtils.getRelativeTimeSpanString(this, now.plusDays(3)));
text.add("Short past: " + DateUtils.getRelativeTimeSpanString(this, now.minusMinutes(25)));
text.add("Medium past: " + DateUtils.getRelativeTimeSpanString(this, now.minusHours(5)));
text.add("Long past: " + DateUtils.getRelativeTimeSpanString(this, now.minusDays(3)));
addSample("DateUtils.getRelativeTimeSpanString()", text);
}
8:显示一段时间的相对的字符串表示
private void sampleGetRelativeTimeSpanStringWithPreposition() throws NotExistException, WrongTypeException, IOException {
List<String> text = new ArrayList<String>();
DateTime now = DateTime.now();
text.add("Short future: " + DateUtils.getRelativeTimeSpanString(this, now.plusMinutes(25), true));
text.add("Medium future: " + DateUtils.getRelativeTimeSpanString(this, now.plusHours(5), true));
text.add("Long future: " + DateUtils.getRelativeTimeSpanString(this, now.plusDays(3), true));
text.add("Short past: " + DateUtils.getRelativeTimeSpanString(this, now.minusMinutes(25), true));
text.add("Medium past: " + DateUtils.getRelativeTimeSpanString(this, now.minusHours(5), true));
text.add("Long past: " + DateUtils.getRelativeTimeSpanString(this, now.minusDays(3), true));
addSample("DateUtils.getRelativeTimeSpanString() (with preposition)", text);
}
9:测试是否是今天
private void sampleIsToday() {
List<String> text = new ArrayList<String>();
LocalDate today = LocalDate.now();
text.add("Today: " + DateUtils.isToday(today));
text.add("Tomorrow: " + DateUtils.isToday(today.plusDays(1)));
text.add("Yesterday: " + DateUtils.isToday(today.minusDays(1)));
addSample("DateUtils.isToday()", text);
}
10:当前时间的表示
private void sampleLocalDate() {
List<String> text = new ArrayList<String>();
LocalDate now = LocalDate.now();
text.add("Now: " + now);
text.add("Now + 2 days: " + now.plusDays(2));
text.add("Now + 3 months: " + now.plusMonths(3));
addSample("LocalDate", text);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
代码活跃度
社区活跃度
团队健康
流行趋势
影响力
:与代码提交频次相关
:与项目和用户的issue、pr互动相关
:与团队成员人数和稳定度相关
:与项目近期受关注度相关
:与项目的star、下载量等社交指标相关