package net.demo.test.date;
import java.text.MessageFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
public class Callout {
private static String CALLOUT_START_TIME = "08:00";
private static String CALLOUT_END_TIME = "20:00";
private static Callout instance = new Callout();
private boolean inited = false;
private Callout() {
if (!inited) {
init();
inited = true;
}
}
public static Callout getInstance() {
return instance;
}
public static void init() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd {0}:00");
sdf.setLenient(false);
Date date = new Date(System.currentTimeMillis());
String timeTemplate = sdf.format(date);
String defaultPeriod = "08:00-20:00";
// String CalloutPeriod =
// SystemConfigCache.getConfigValue("ivr_can_Callout_period",
// defaultPeriod);
String[] periods = defaultPeriod.split("-");
try {
Callout.CALLOUT_START_TIME = periods[0];
Callout.CALLOUT_END_TIME = periods[1];
} catch (Exception e) {
Callout.CALLOUT_START_TIME = "08:00";
Callout.CALLOUT_END_TIME = "20:00";
return;
}
String startTime = MessageFormat.format(timeTemplate,
Callout.CALLOUT_START_TIME);
String endTime = MessageFormat.format(timeTemplate,
Callout.CALLOUT_END_TIME);
SimpleDateFormat sdd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdd.setLenient(false);
try {
long start = sdd.parse(startTime).getTime();
long end = sdd.parse(endTime).getTime();
if (start > end) {
throw new ParseException("start time after end time", -1);
}
} catch (ParseException e) {
Callout.CALLOUT_START_TIME = "08:00";
Callout.CALLOUT_END_TIME = "20:00";
}
}
public static Date getCurrentTime() {
Date date = new Date(System.currentTimeMillis());
return date;
}
public static Date getStartTime() {
return getDate(Callout.CALLOUT_START_TIME);
}
public static Date getEndTime() {
return getDate(Callout.CALLOUT_END_TIME);
}
public static Date getDate(String time) {
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd {0}:000");
String template = sdf.format(date);
String result = MessageFormat.format(template, time);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setLenient(false);
try {
date = sdf.parse(result);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static void main(String[] args) {
boolean flag = canCallout();
System.out.println(flag);
//
flag = example();
System.out.println(flag);
}
public static boolean canCallout() {
long start = getStartTime().getTime();
long end = getEndTime().getTime();
long current = getCurrentTime().getTime();
if (start <= current && end > current) {
return true;
}
return false;
}
public void test() {
GregorianCalendar c = new GregorianCalendar(Locale.getDefault());
c.setLenient(false);
c.setTime(new Date());
}
/**
* Example
*/
public static boolean example() {
String DEFAULT_PERIOD = "08:00-20:00";
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String currentTime = sdf.format(date);
// getSystemConfig();
String[] interval = DEFAULT_PERIOD.split("-");
if (currentTime.compareTo(interval[0]) > 0
&& currentTime.compareTo(interval[1]) < 0) {
return true;
}
return false;
}
}
分享到:
相关推荐
"messageformat.zip"是一个包含MessageFormat相关代码的压缩包,主要用于处理多语言环境中的消息格式化。下面将详细介绍MessageFormat、multipleformat和selectformat,以及它们在前端项目中的应用。 MessageFormat...
`intl-messageformat`是一个用于处理i18n的JavaScript库,它基于ICU(International Components for Unicode)消息格式规范,为前端项目提供了强大的本地化消息处理能力。本篇文章将详细介绍`intl-messageformat`库...
MessageFormat是Java中用于格式化字符串的一个非常有用的类,它允许我们使用模板化的模式来插入变量值,并且支持多种格式,如数字、日期、时间等。这个类的主要优点在于其灵活性和可读性,使得代码更加清晰,易于...
本项目"angular-translate-interpolation-messageformat.zip"聚焦于Angular Translate插件的一个特定方面:MessageFormat插件,它允许开发者基于某些动态值插入字符串,实现更加灵活的国际化(i18n)处理。...
在Java编程中,`MessageFormat.format`方法是一个强大的工具,用于生成格式化的字符串,这些字符串可以适应不同的语言环境和数据类型。这个方法是基于`java.text.MessageFormat`类,它允许我们创建动态的、可重用的...
Java利用MessageFormat实现短信模板的匹配 在Java中,实现短信模板的匹配是一项非常重要的任务,而使用MessageFormat可以方便地实现这种匹配。MessageFormat是一个强大的工具,可以格式化字符串,使得我们可以灵活...
messageformat.net, .NET的ICU MessageFormat实现 用于. NET 的- 更好的用户界面字符串。 这是. NET 中ICU消息格式的实现。 有关该格式的官方信息,请转到: http://userguide.icu-project.org/formatparse/messages...
官方版本,亲测可用
此monorepo由构成我们的ICU MessageFormat的JS实现的以下程序包组成: core-将MessageFormat字符串转换为JavaScript函数的核心库库的命令行客户端将其他本地化格式转换为MessageFormat 用于工具 loader-用于JSON,...
messageformat.js 的代码镜像模式 此存储库提供用于编辑 MessageFormat 模板字符串的代码镜像模式。 语法高亮代码折叠和 linter 与编辑器集成。 如果您想看到它的实际效果,请尝试。 虽然有很多不同的 ...
消息格式包使用 messageformat.js 编译消息树。 输出中没有全局变量。安装 > npm install messageformat-bundle用法 var messageformatBundle = require ( 'messageformat-bundle' ) ;// Work in progress…应用程序...
ngx-translate-messageformat-compiler ngx-translate编译器,它使用messageformat.js来使用ICU语法编译翻译以处理复数形式和性别 (StackBlitz) 目录 安装 假设您已经安装了 。 使用npm : npm install ngx-...
`intl-messageformat-parser-master`这个压缩包文件名暗示了这是项目的主分支代码。通常,`master`分支代表项目的主线开发,包含了最新的稳定版本。解压后,开发者可以查看源码,了解其工作原理,或者直接在自己的...
requirejs-messageformat RequireJS 插件来消费 MessageFormat 资源包 依赖关系 这个插件依赖于 Alex Sexton 的库以及文本! 插入。 MessageFormat 库必须位于您的源代码树中的路径下,您将使用该路径作为别名,如...
gettext-to-messageformat 使用将gettext输入(po / pot / mo文件)转换为兼容的JSON。 安装 npm install --save gettext-to-messageformat 或者 yarn add gettext-to-messageformat 如果在本机不支持ES6功能...
MessageFormat 编译对象编译 messageformat.js 翻译字符串对象。安装 npm install messageformat-compile-object --save用法 var compile = require('messageformat-compile-object');var obj = {locale: 'es'};obj....
适用于Webpack的YAML i18n加载程序...安装npm install messageformat-yaml-loader 或者yarn add messageformat-yaml-loader用法有关以下内容的有效演示, npm install在目录中运行npm install ,然后在浏览器中打开e
支持MessageFormat i18n,采用流星方式。 轻松React性地使用复杂的字符串(性别,复数形式),并且非常容易地将其翻译成其他语言(通过Web UI)。 特征 通过行业黄金标准MessageFormat使用超强大的语言 通过自动...
"messageformat-locale-zh"项目似乎是一个专门针对中文区域(locale)的MessageFormat库的分支或版本。MessageFormat是JavaScript的一个库,用于国际化(i18n)和本地化(l10n)过程中的字符串格式化,它允许开发者...