Ric*_*d N 1 validation date salesforce apex-code
我需要验证用户通过visualforce页面输入的日期字段.我的代码期望的格式是"yyyy-MM-dd".
在顶点处理此问题的最佳方法是什么?在使用某些标准类之前,我在Java中做了类似的事情,例如在SimpleDateFormat之类的Apex中没有.
现在我可以使用正则表达式检查"格式"是否正确.但我还必须阻止用户输入符合格式的"9999-99-99".我希望Salesforce有一个很好的内置解决方案.
谢谢你,凯文
您可以尝试我称之为控制欺骗.我基本上创建一个空的sObject,其日期字段类似于Task对象(或类似的轻量级).在屏幕上,我显示任务日期的输入,该日期将呈现本机日期字段.这样做可以让salesforce验证用户的日期输入,并且用户也可以获得漂亮的日历弹出窗口.
以下是控制器中的示例
public class MyController {
public Task DateInput {get;set;}
public MyController() {
DateInput = new Task();
}
public void save() {
Date dInputDate = DateInput.ActivityDate;
//Format Date
DateTime dtValue = DateTime.newInstance(dInputDate.year(), dInputDate.month(), dInputDate.day());
string sFormattedDate = dtValue.format('yyyy-MM-dd');
}
}
Run Code Online (Sandbox Code Playgroud)
这是Page的样子
<apex:page controller="MyController">
<apex:form>
<apex:pageBlock>
<apex:pageBlockSection>
<apex:pageBlockSectionItem>
<apex:outputLabel for="inputDate" value="My Date"/>
<apex:inputField value="{!DateInput.ActivityDate}" />
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Run Code Online (Sandbox Code Playgroud)
您注意到我在save方法中执行的格式化.你不能在Date上使用格式,但你可以在DateTime上,所以我只是将Date转换为DateTime,然后使用format方法格式化我的日期.
| 归档时间: |
|
| 查看次数: |
14018 次 |
| 最近记录: |