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点),通过网上查找答案,发现没有我需 ...
随机推荐
- C++ 学习资料搜寻与学习(第一期)(未完待续)
一.图形图像类 [Visual C++]vs2008/2005正确打开vs2010所创建项目的几种方法 jlins 2012-04-12 14:38 [Visual C++]关于无法打开包括文件:“S ...
- [转] C# Winform 拦截关闭按钮触发的事件
原文 C# Winform 拦截关闭按钮触发的事件 用户关闭软件时,软件一般会给“是否确认关闭”的提示. 通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClos ...
- [King.yue]Ext.net 页面布局Flex
此属性仅当父布局HboxLayout或使用VboxLayout.此配置选项被应用到子项目容器管理的布局.每个子项目以Flex属性被弯曲的水平根据每个项目的相对弹性值比较,都带有一个弯曲值指定项目金额. ...
- 线性表-串:KMP模式匹配算法
一.简单模式匹配算法(略,逐字符比较即可) 二.KMP模式匹配算法 next数组:j为字符序号,从1开始. (1)当j=1时,next=0: (2)当存在前缀=后缀情况,next=相同字符数+1: ( ...
- 大规模Hadoop集群实践:腾讯分布式数据仓库(TDW)
TDW 是腾讯最大的离线数据处理平台.本文主要从需求.挑战.方案和未来计划等方面,介绍了TDW在建设单个大规模集群中采取的 JobTracker 分散化和 NameNode 高可用两个优化方案. TD ...
- 50道经典的JAVA编程题(21-25)
50道经典的JAVA编程题(21-25),明天早上java考试了,还是坚持做题吧...这题比老师的题好多了! [程序21]TestJieCheng.java题目:求1+2!+3!+...+20!的和1 ...
- jetty上传 Form too large: 275782 > 200000
1,找到jetty服务器下的jetty.xml,在 <Configure id="Server" class="org.eclipse.jetty.server.S ...
- leetcode@ [36/37] Valid Sudoku / Sudoku Solver
https://leetcode.com/problems/valid-sudoku/ Determine if a Sudoku is valid, according to: Sudoku Puz ...
- ffmpeg 的tutorial
可能是新的: https://github.com/chelyaev/ffmpeg-tutorial https://github.com/chelyaev/ffmpeg-tutorial.git 老 ...
- php透明合并png与jpg图片
源 <?php $png = imagecreatefrompng('./mark.png'); $jpeg = imagecreatefromjpeg('./image.jpg'); list ...