GWT 中日期格式化 ,处置Date
GWT的view中不能用java原生的DateFormat 必须使用gwt封装的格式化方法,方法如下
import com.google.gwt.i18n.client.DateTimeFormat;
Date date=new Date();
DateTimeFormat sdf = DateTimeFormat.getFormat("yyyy-MM-dd");
DateTimeFormat sdf2 = DateTimeFormat.getFormat("yyyy-MM");
String sStr=sdf2.format(date)+"-01";
String eStr= sdf.format(date);
String[] s = {sStr,eStr};
dateRangeField.setValue(s);
参考源码:
package com.iloosen.imall.client.platform.module.stats.view; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import org.apache.commons.lang.StringUtils; import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.data.BaseTreeModel;
import com.extjs.gxt.ui.client.data.DataField;
import com.extjs.gxt.ui.client.data.HttpProxy;
import com.extjs.gxt.ui.client.data.LoadConfig;
import com.extjs.gxt.ui.client.data.LoadEvent;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.LoadListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.Label;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.layout.MarginData;
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.iloosen.imall.client.commons.WidgetCreateUtil;
import com.iloosen.imall.client.components.BaseButton;
import com.iloosen.imall.client.components.BaseContentPanel;
import com.iloosen.imall.client.components.ColumnConfigExt;
import com.iloosen.imall.client.components.IMallRequestBuilder;
import com.iloosen.imall.client.components.PagingToolBarExt;
import com.iloosen.imall.client.components.data.JsonPagingLoadResultReaderExt;
import com.iloosen.imall.client.components.event.CellClickEvent;
import com.iloosen.imall.client.components.selector.DateRangeField;
import com.iloosen.imall.client.constant.yljkc.IYljkcCoinLog;
import com.iloosen.imall.client.platform.module.stats.presenter.StatsExchangeCoinPresenter;
/**
*
* @ClassName: CouponManagerView
* @Description: 购物券管理批次管理View
* @author ly
* @date 2015年10月22日 上午9:24:02
*
*/
public class StatsExchangeCoinView extends BaseContentPanel implements StatsExchangeCoinPresenter.Display{ private static final String KEY = "key";
protected BasePagingLoader loader;
protected Label countLabel;
private BaseButton btnSearch;
protected Grid<ModelData> listGrid;
private TextField<String> txtSearch;
private BaseButton btnOutput;
private DateRangeField dateRangeField ;//时间段 public StatsExchangeCoinView() {
super(false, false);
setBodyBorder(false);
setBorders(false);
initToolBar();
initGrid();
} /**
* 初始化 toolBar 的按钮
*/
private void initToolBar() {
btnSearch = new BaseButton("搜 索", "find");
btnOutput = new BaseButton("导出", "excel");
dateRangeField = WidgetCreateUtil.createDateRangeField("start", "end", "选择日期");
Date date=new Date();
DateTimeFormat sdf = DateTimeFormat.getFormat("yyyy-MM-dd");
DateTimeFormat sdf2 = DateTimeFormat.getFormat("yyyy-MM");
String sStr=sdf2.format(date)+"-01";
String eStr= sdf.format(date);
String[] s = {sStr,eStr};
dateRangeField.setValue(s); txtSearch = new TextField<String>();
txtSearch.setName("searchField");
txtSearch.setAutoWidth(true);
txtSearch.setAutoHeight(true);
txtSearch.setTitle("登录名或用户名");
txtSearch.setEmptyText("登录名或用户名");
//添加工具
getToolBar().setLayoutData(new MarginData(10, 10, 10, 10));
getToolBar().setHeader("59豆兑换消费统计");
getToolBar().add(dateRangeField);
getToolBar().add(btnOutput);
getToolBar().add(new FillToolItem());
getToolBar().add(txtSearch);
getToolBar().add(btnSearch);
} /**
* 初始化 grid
*/
protected void initGrid() {
String url = GWT.getHostPageBaseURL() + "/admin/modules/yljkc/yljkcCoin/findPage.json";
RequestBuilder builder = new IMallRequestBuilder(RequestBuilder.GET, url);
builder.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HttpProxy<String> proxy = new HttpProxy<String>(builder); ModelType type = new ModelType();
type.setTotalName("total");
type.setRoot("result");
/**用户ID*/
// DataField sysUserIdField = new DataField(IYljkcCoinLog.SYS_USER_ID, IYljkcCoinLog.SYS_USER_ID);
// DataField sysUserIdField = new DataField("loginId", "loginId");
// sysUserIdField.setType(Integer.class);
//type.addField(sysUserIdField);
type.addField("loginId");
type.addField(IYljkcCoinLog.SYS_USER_NAME);
type.addField(IYljkcCoinLog.USER_MOBILE);
type.addField(IYljkcCoinLog.TRANSACTION_START_AMOUNT);
type.addField(IYljkcCoinLog.TRANSACTION_END_AMOUNT);
type.addField(IYljkcCoinLog.TRANS_IN_AMOUNT);
type.addField(IYljkcCoinLog.PAY_FAIL_IN_AMOUNT);
type.addField(IYljkcCoinLog.OTHER_IN_AMOUNT);
type.addField(IYljkcCoinLog.DEDUCT_OUT_AMOUNT);
type.addField(IYljkcCoinLog.PAY_OUT_AMOUNT);
type.addField(IYljkcCoinLog.TO_MONEY);
type.addField(IYljkcCoinLog.START_TIME_STR);
type.addField(IYljkcCoinLog.END_TIME_STR); JsonPagingLoadResultReaderExt<PagingLoadResult<ModelData>> reader = new JsonPagingLoadResultReaderExt<PagingLoadResult<ModelData>>(type);
loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, reader);
loader.setRemoteSort(true);
loader.addLoadListener(new LoadListener() {
public void loaderBeforeLoad(LoadEvent le) {
LoadConfig config = le.getConfig();
parameters(config);
}
});
int pageSize = 25; ListStore<ModelData> listStore = new ListStore<ModelData>(loader);
PagingToolBar pagingToolBar = new PagingToolBarExt(pageSize);
pagingToolBar.bind(loader); countLabel = new Label();
pagingToolBar.insert(countLabel, 13);
/**
* ColumnConfig
* 设置显示页面的表头
*/
List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); //ColumnConfig sysUserIdConfig =new ColumnConfigExt(IYljkcCoinLog.SYS_USER_ID, "用户id", 90);
ColumnConfig sysUserIdConfig =new ColumnConfigExt("loginId", "登录名", 90);
configs.add(sysUserIdConfig); ColumnConfig sysUserNameConfig = new ColumnConfigExt(IYljkcCoinLog.SYS_USER_NAME, "用户名", 150);
configs.add(sysUserNameConfig); ColumnConfig userMobileConfig = new ColumnConfigExt(IYljkcCoinLog.USER_MOBILE, "手机号", 100);
configs.add(userMobileConfig); ColumnConfig transactionStartAmountConfig = new ColumnConfigExt(IYljkcCoinLog.TRANSACTION_START_AMOUNT, "期初余额", 100);
configs.add(transactionStartAmountConfig);
ColumnConfig transactionEndAmountConfig = new ColumnConfigExt(IYljkcCoinLog.TRANSACTION_END_AMOUNT, "期末余额", 100);
configs.add(transactionEndAmountConfig); ColumnConfig transInAmountConfig = new ColumnConfigExt(IYljkcCoinLog.TRANS_IN_AMOUNT, "59豆兑换入账", 100);
configs.add(transInAmountConfig);
ColumnConfig payFailInAmountConfig = new ColumnConfigExt(IYljkcCoinLog.PAY_FAIL_IN_AMOUNT, "支付失败入账", 100);
configs.add(payFailInAmountConfig);
ColumnConfig otherInAmountConfig = new ColumnConfigExt(IYljkcCoinLog.OTHER_IN_AMOUNT, "其他入账", 100);
configs.add(otherInAmountConfig);
ColumnConfig deductOutAmount = new ColumnConfigExt(IYljkcCoinLog.DEDUCT_OUT_AMOUNT, "批量扣减出账", 100);
configs.add(deductOutAmount);
ColumnConfig payOutAmount = new ColumnConfigExt(IYljkcCoinLog.PAY_OUT_AMOUNT, "健康币支付出账", 100);
configs.add(payOutAmount);
ColumnConfig toMoney = new ColumnConfigExt(IYljkcCoinLog.TO_MONEY, "健康币抵扣金额", 100);
configs.add(toMoney); ColumnConfig couponStartTimeConfig = new ColumnConfigExt(IYljkcCoinLog.START_TIME_STR, "开始日期", 100);
configs.add(couponStartTimeConfig); ColumnConfig couponEndTimeConfig = new ColumnConfigExt(IYljkcCoinLog.END_TIME_STR, "结束日期", 100);
configs.add(couponEndTimeConfig);
ColumnModel cm = new ColumnModel(configs); listGrid = new Grid<ModelData>(listStore, cm);
listGrid.setStripeRows(true);
listGrid.disableTextSelection(false);
listGrid.setLoadMask(true); this.getMainPanel().getAriaSupport().setLabelledBy(this.getMainPanel().getId());
this.getMainPanel().add(listGrid);
this.getMainPanel().setBottomComponent(pagingToolBar);
} protected void parameters(LoadConfig config) { //NOSONAR
if (txtSearch.getValue() != null) {
config.set(txtSearch.getName(), txtSearch.getValue());
}
if (dateRangeField.getValue() != null && !dateRangeField.getStartTimeString().equals("") && !dateRangeField.getEndTimeString().equals("")) {
config.set("startDate", dateRangeField.getStartTimeString());
config.set("endDate", dateRangeField.getEndTimeString());
}
} @Override
public void setClickGridCellHandler(Listener<CellClickEvent> listener) {
listGrid.addListener(CellClickEvent.TYPE,listener);
} @Override
public Grid<ModelData> getListGrid() {
return listGrid;
} @Override
public void reLoadGrid() {
// RestUtil.sendRestRequest("/admin/modules/yljkc/yljkcCoin/findPage.json", getSearchModel(), RestUtil.REST_GET, new BaseCallBack() {
// @Override
// protected void onSuccess(Request request, Response response) {
// String text = response.getText();
// JSONObject json = (JSONObject) JSONParser.parseStrict(text);
// JSONObject result = (JSONObject) json.get("result");
// ModelData md = ModelUtil.json2ModelData(result, new ModelUtil.ModelCreator() {
// public ModelData create() {
// return new BaseTreeModel();
// }
// });
// //countLabel.setText(getCouponBatchCountInfo(md));
// }
// });
listGrid.getStore().getLoader().load();
}
// /**
// * 获取购物券的统计信息
// * @param m
// * @return
// */
// public String getCouponBatchCountInfo(ModelData m){
// return "<Font style='font-size: 13px;padding:5px 10px;'>" +
// "共生成 " + (m != null ?((Double) m.get("couponCount")).intValue() : 0) + " 张" +
// " 总金额¥:<Font style='font-weight:bold'>" + (m != null ?((Double) m.get("totalAmount")).intValue() : 0) +
// "</Font> 充值总金额¥:<Font style='color:green'>" + (m != null ? ((Double)m.get("bindAmount")).intValue() : 0) +
// "</Font> 剩余总金额¥:<Font style='color:red'>" + (m != null ? ((Double)m.get("unbindAmount")).intValue() : 0) + "</Font></Font>";
// }
/**
* 添加搜索条件
* @return
*/ private BaseModelData getSearchModel() {//NOSONAR
BaseModelData searchModel = new BaseModelData();
if (txtSearch.isEnabled()) {
if (txtSearch.getValue() != null) {
searchModel.set(txtSearch.getName(), txtSearch.getValue());
}
if (dateRangeField.getValue() != null && !dateRangeField.getStartTimeString().equals("") && !dateRangeField.getEndTimeString().equals("")) {
searchModel.set("startDate", dateRangeField.getStartTimeString());
searchModel.set("endDate", dateRangeField.getEndTimeString());
}
}
return searchModel;
}
@Override
public void addSearchListener(Listener<? extends ComponentEvent> listener) {
btnSearch.addListener(Events.OnClick, listener);
} @Override
public void addOutputListener(Listener<BaseEvent> listener) {
btnOutput.addListener(Events.OnClick, listener);
} @Override
public List<Object> getTime() {
List<Object> time = new ArrayList<Object>();
if(dateRangeField.getValue() != null && !dateRangeField.getStartTimeString().equals("") && !dateRangeField.getEndTimeString().equals("")){
time.add(dateRangeField.getStartTimeString());
time.add( dateRangeField.getEndTimeString());
if(txtSearch.getValue()!=null){
time.add(txtSearch.getValue());
}
return time;
}
MessageBox.alert("系统信息", "请选择日期项再确定操作!", null);
return null;
} }
GWT 中日期格式化 ,处置Date的更多相关文章
- 震惊!java中日期格式化的大坑!
前言 我们都知道在java中进行日期格式化使用simpledateformat.通过格式 yyyy-MM-dd 等来进行格式化,但是你知道其中微小的坑吗? yyyy 和 YYYY 示例代码 @Test ...
- Java中日期格式化的实现算法
package com.study.test; import java.io.Serializable; import java.text.SimpleDateFormat; import java. ...
- c#中日期格式化
c#的日期格式化比较简单,在ToString中设置日期格式即可 DateTime.Now.ToLocalTime().ToString("yyyy_MM_dd_hh_mm_ss") ...
- js日期格式化 扩展Date()
javascript Date format(js日期格式化) 方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(H/h).分(m).秒(s ...
- PHP中日期时间函数date()用法总结
date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考. 格式化日期date() 函数的第一个参数规定了如何格式化日期/时间.它使用字母 ...
- .net视图中日期格式化
昨天在做一个功能,要在界面上按照规定的格式显示一个时间,如果直接在expression那里格式化的话(如下:) @Html.DisplayFor(c => Convert.ToDateTime( ...
- SQL SERVER 中日期格式化,及GETDATE()、CONVERT()函数使用说明
1. date和datetime类型的区别 date是SQL Server 2008新引进的数据类型.它表示一个日期,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日.只需 ...
- Java中日期格式化YYYY-DD的坑
写这篇博文是记录下跨年的bug.去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误. 当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据. 今天逛技术论论 ...
- Java中日期格式化SimpleDateFormat类包含时区的处理方法
1.前言 需要把格式为“2017-02-23T08:04:02+01:00”转化成”23-02-2017-T15:04:02“格式(中国时区为+08:00所以是15点),通过网上查找答案,发现没有我需 ...
随机推荐
- [OFBiz]开发 一
1.使用Eclipse3.7.1 + subclipse plugins 1.8.2(svn client)http://subclipse.tigris.org/servlets/ProjectDo ...
- iOS7程序后台运行
介绍 这次 iOS7 对程序后台运行进行了加强,但是仅仅是加强而已,要想像 Android 程序那样自由当然就别想了,苹果这么做主要还是出于电池使用时间考虑,但是这次的加强对大部分程序基本够用. 在介 ...
- jquery 日期控件
控件官网: http://www.interidea.org/demo/icalendar.php#demohtml绑定控件 $("#startdate").icalendar({ ...
- suds 在python3.x上的安装并访问webservice
类库安装 直接使用命令行:pip install suds 报错:Traceback (most recent call last): File "setup.py", li ...
- PDF/WORD/EXCEL 图片预览
一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourceP ...
- ASIHTTPRequest 编码问题
今天在模拟登陆时,中文的用户名一直登陆不上,对用户名进行了各种转码还是不能解决. 在这个问题上一直卡了半个多小时,最终才发现根本不是用户名的编码问题,而是使用的第三方网络插件的ASIHTTPReque ...
- html5爱心表白
http://js.itivy.com/jiaoben1892/index.html http://bangpai.sourceforge.net/main.html
- 配置OpenStack以使用LDAP实现身份管理
本文展示了如何配置 Keystone,以便使用轻量级目录http://www.aliyun.com/zixun/aggregation/34570.html">访问协议( LDAP)服 ...
- Java中HashMap和TreeMap的区别深入理解
首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. Has ...
- 第一次见4.3K电阻
今天焊RC522的实验板,接收电阻买的是5.1K,焊接时发现丝层写的是432,阻为4.26K.理论值应该是4.3K