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点),通过网上查找答案,发现没有我需 ...
随机推荐
- [转] 在Asp.net前台和后台弹出提示框
一.在前台弹出提示框 1.点击"A"标记或者"控件按钮"弹出提示框 <asp:LinkButton ID="lbtnDel" runa ...
- pattern目录
pattern目录 1.创建型模式 JDK1.5枚举Singleton 单例模式 AbstractFactory 工厂方法模式 简单工厂模式 Builder Prototype 2.结构 ...
- ChineseCounter.cs 统计中文文本中常用字占比
http://www.tuicool.com/articles/qmMba2 1 using System; using System.IO; using System.Collections.Gen ...
- HDU 5639 Deletion 二分+网络流
题意:bc round 74 div1 分析: 考虑删掉的边的形态, 就是我们经常见到的环套树这种结构, 参考平时这种图给出的方法, 如果一个图的每个点的出边只有一条, 那么一定会构成环套树这种结构. ...
- 使用appium做安卓手机web自动化测试 真机demo
一:appium相关环境搭建过程略. 二:连接真机: 1.手机(andriod 4.2.2)连接电脑,打开USB调试模式. 2.运行cmd 输入 adb devices -l 查看UDID,如图: 3 ...
- MSP430单片机输入与输出
MSP430单片机的输入输出线绝大多数是服用的,除了个别的端口外,基本上是8为为一组,不同的型号的MSP430的端口有所不同,就msp430F5438而言,一共有11个I/O端口,其中除了第十一P11 ...
- 取小数点后三位的方法(js)
使用js取小数点后三位的方法,我觉得这个方法最好 Math.round(num*100)/100 还有其他方法: http://hi.baidu.com/yansueh/item/f026d8d759 ...
- activemq 的小实验
package ch02.chat; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms ...
- 题目1096:日期差值(a-b=(a-c)-(b-c))
http://ac.jobdu.com/problem.php?pid=1096 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每 ...
- 【转】Linux 技巧: Bash 参数和参数扩展
重点看下清单7 现在,很多 Linux® 和 UNIX® 系统上都有 bash shell,它是 Linux 上常见的默认 shell.通过本文,您将了解到如何在 bash 脚本中处理参数和选项,以及 ...