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. Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  2. jsp、js、html等

    1.一个button标签怎么触发事件: 一般触发事件有两种方式,要么是在html直接绑定,即button标签中不只有class.type和id,还要写onclick=... 还有一种,就是在js代码部 ...

  3. 【工具类】如何通过代码安装一个apk文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  4. Python脚本控制的WebDriver 常用操作 <二十一> 执行JS

    测试用例场景 如果你熟悉js的话,那么使用webdriver执行js就是一件很高效的事情了.在webdriver脚本中直接执行js的好处很多,这里就不一一枚举了. webdriver提供了execut ...

  5. I2c串行总线组成及其工作原理

    采用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时系统更容易更改和扩充 常用的串行扩展总线有:I2c总线,单总线,SPI总线,以及microwire.Plus等等 I2c总 ...

  6. 山东省2016acm省赛

    A 水 #include <iostream> #include <cstdio> #include <algorithm> #include <list&g ...

  7. JAVA一个关于传递引用的测试

    以下测试主要为了说明:对传递对象或传递引用进行修改,对最终值的影响情况 public class PassTest {     @Before     public void setUp() thro ...

  8. HDU-4705 Y 树形DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 题意:给一颗树,从树上任意选择3个点{A,B,C},要求他们不在一条链上,求总共的数目. 容易想 ...

  9. Linux下用hostapd架无线AP

    Published by 荒野无灯 on 2011-10-08 00:56:02 under 服务器/MySQL Tags: 路由,无线AP,hostapd 34452 views 本文将介绍在lin ...

  10. Java之Property-统获取一个应用程序运行的次数

    package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...