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;'>" +
// "共生成&nbsp;" + (m != null ?((Double) m.get("couponCount")).intValue() : 0) + "&nbsp;张" +
// "&nbsp;&nbsp;&nbsp;总金额¥:<Font style='font-weight:bold'>" + (m != null ?((Double) m.get("totalAmount")).intValue() : 0) +
// "</Font>&nbsp;&nbsp;&nbsp;充值总金额¥:<Font style='color:green'>" + (m != null ? ((Double)m.get("bindAmount")).intValue() : 0) +
// "</Font>&nbsp;&nbsp;&nbsp;剩余总金额¥:<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的更多相关文章

  1. 震惊!java中日期格式化的大坑!

    前言 我们都知道在java中进行日期格式化使用simpledateformat.通过格式 yyyy-MM-dd 等来进行格式化,但是你知道其中微小的坑吗? yyyy 和 YYYY 示例代码 @Test ...

  2. Java中日期格式化的实现算法

    package com.study.test; import java.io.Serializable; import java.text.SimpleDateFormat; import java. ...

  3. c#中日期格式化

    c#的日期格式化比较简单,在ToString中设置日期格式即可 DateTime.Now.ToLocalTime().ToString("yyyy_MM_dd_hh_mm_ss") ...

  4. js日期格式化 扩展Date()

    javascript Date format(js日期格式化) 方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(H/h).分(m).秒(s ...

  5. PHP中日期时间函数date()用法总结

    date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考. 格式化日期date() 函数的第一个参数规定了如何格式化日期/时间.它使用字母 ...

  6. .net视图中日期格式化

    昨天在做一个功能,要在界面上按照规定的格式显示一个时间,如果直接在expression那里格式化的话(如下:) @Html.DisplayFor(c => Convert.ToDateTime( ...

  7. SQL SERVER 中日期格式化,及GETDATE()、CONVERT()函数使用说明

    1. date和datetime类型的区别 date是SQL Server 2008新引进的数据类型.它表示一个日期,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日.只需 ...

  8. Java中日期格式化YYYY-DD的坑

    写这篇博文是记录下跨年的bug.去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误. 当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据. 今天逛技术论论 ...

  9. Java中日期格式化SimpleDateFormat类包含时区的处理方法

    1.前言 需要把格式为“2017-02-23T08:04:02+01:00”转化成”23-02-2017-T15:04:02“格式(中国时区为+08:00所以是15点),通过网上查找答案,发现没有我需 ...

随机推荐

  1. Gen_fsm行为实践与分析

    1.简介 Gen_fsm是一个通用的有限状态机,它描述了这样的一组关系: State(S) x Event(E) -> Actions(A),State(S') 这个关系意味着:如果在S状态下发 ...

  2. hbase分页查询

    为了广大技术爱好者学习netty,在这里帮新浪微博@nettying宣传下他出版的新书 <netty权威指南>@nettying兄在华为NIO实践多年,这本书是他的技术和经验的一个结晶.N ...

  3. 单实例运行tz

    (引用了 Microsoft.VisualBasic.ApplicationServices)SingleInstanceApplicationWrapper.cs    using System.W ...

  4. java创建对象的四种方式

    1.最常见的 new 一个 2使用反射机制创建对象,直接调用非构造函数 Class obj=Class.forName("A"); A a=obj.newInstance(); C ...

  5. Magento 切换成中文后没有数据信息解决办法

    进入后台的, 选择CMS---pages, 看到这个么? 如果这里显示的不是所有商店界面的话, 就点击进去,然后选择所有商店界面: 如下所示: 再点击保存就可以了.

  6. 利用weka和clementine数据挖掘举例

    1.数据概述 本报告中采用的数据集来自于UCI经典数据集Adult,最初来源是由1994年Barry Becker的统计数据集,该数据集本来最初的主要任务是根据数据集中的相关属性预测某个人的年收入是大 ...

  7. 成功在BAE上部署ghost 5.0

    这周摸索着网站的建设,终于在今天成功上线!这里要谢谢ghost中文网和群里的网友,他的博客在这opengiser.他们的帮助太重要了.现在把过程记录下来,共同学习.试运营地址在edwardesire. ...

  8. Redis的探究

    之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段. 时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和 ...

  9. 多进程解决datasnap支持的tcp长连接数量少的问题

    对于实时采集数据的项目,应用场景比如是这样的:5000客户端,每个客户端每隔500MS要给服务器上传一次数据. 大家知道,像INDY这种阻塞型的通信控件,所能支持的TCP长连接的一般地不能超过1000 ...

  10. [Objective-c 基础 - 2.6] @property和@synthesize

    Xcode编译器的特性,自动生成getter和setter   A.@property 自动生成某个成员变量的getter和setter的声明 变量的命名要求:以下划线开头 Student.h @in ...